Skip to content
VDS · الوصول إلى الجهاز

scp و rsync: نسخ الملفات

أمران لنقل الملفات بين حاسوبك وخادم: متى يكفي scp، وفيم يفيد rsync، وكيف لا تستبدل مجلد شخص آخر بشرطة مائلة في النهاية.

آخر تحديث 23 أغسطس 2026

العميل الرسومي مفيد لتعديل عابر، لكن النشر والنسخ الاحتياطي أسهل بأمر واحد.

scp: النسخ لمرة واحدة

الصيغة نفسها كما في cp، مع عنوان الجهاز فقط:

scp dump.sql root@203.0.113.10:/root/
scp root@203.0.113.10:/var/log/nginx/error.log ./
scp -r ./site root@203.0.113.10:/var/www/

الأمر الأول يرسل ملفًا، والثاني يسحبه، والثالث ينسخ مجلدًا كاملًا (-r).

إذا كان SSH يعمل على منفذ مختلف، حدده بحرف -P الكبير:

scp -P 2222 dump.sql root@203.0.113.10:/root/

مع ملف ~/.ssh/config تصبح الأوامر أقصر: scp dump.sql vds:/root/.

rsync: المزامنة

ينقل rsync الفروقات فقط، ويستطيع استئناف نقل متوقف وإظهار التقدم. للنشر المتكرر يكون أسرع بمرات عديدة.

rsync -avz --progress ./site/ root@203.0.113.10:/var/www/example.com/
الخيارما يفعله
-aيحافظ على الأذونات والطوابع الزمنية والروابط
-vيطبع قائمة الملفات
-zيضغط التدفق
--progressيظهر تقدم النقل
--deleteيحذف على الجهاز كل ما لا تملكه
--excludeيتخطى كل ما هو غير ضروري

مثال على نشر نظيف:

rsync -avz --delete \
  --exclude '.git' --exclude 'node_modules' --exclude '.env' \
  ./site/ vds:/var/www/example.com/

اسحب نسخة من الجهاز إلى جهتك:

rsync -avz vds:/root/backup-2026-08-23.tar.gz ./backups/

الشرطة المائلة في نهاية المصدر تعني «محتويات المجلد». ./site/ يضع الملفات داخل الهدف، أما ./site فينشئ مجلدًا فرعيًا باسم site داخل الهدف. نصف حالات النشر «المفقودة» سببها هذا.

احذر من --delete

يجعل الخيار --delete المجلد على الجهاز نسخة مطابقة تمامًا لمجلدك: كل ما هو زائد يُحذف دون سؤال. نفّذ تشغيلًا تجريبيًا أولًا:

rsync -avzn --delete ./site/ vds:/var/www/example.com/

الخيار -n يعرض ما سيحدث فقط. بعد التأكد، احذف الحرف n.

السرعة

سرعة القرص محدودة لكل مستوى: الكتابة 60 MB/s لكل نواة (لا تقل عن 60 ولا تزيد عن 400)، والقراءة ضعف ذلك، والاندفاع ثلاثة أضعاف الحد يستمر 30 ثانية. عرض النطاق الشبكي يصل إلى 500 Mbit/s. على VDS-1، سيصطدم رفع أرشيف كبير بحد الكتابة، وهذا متوقع وليس عطلًا. للتحقق مما يحدث:

df -h
iostat -x 2

أخطاء شائعة

العَرَضالسبب
Permission deniedتكتب إلى مجلد لا يملكه مستخدمك — سجّل الدخول كـ root أو غيّر المالك
No such file or directoryالمجلد غير موجود على الجهاز وscp لن ينشئه: نفّذ mkdir -p مسبقًا
هبطت الملفات مستوى أعلىشرطة مائلة ناقصة أو زائدة في المسار
rsync: command not foundثبّت الحزمة على الطرفين: apt install -y rsync
الموقع يعيد 403 بعد النشرالمالك غير محدد: chown -R www-data:www-data /var/www/example.com

إذا كنت تفضل عميلًا رسوميًا، راجع نقل الملفات عبر SFTP.