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.