File Transfer في Linux: استخدام scp وrsync وsftp عمليًا
بعد تعلم SSH، الخطوة الطبيعية هي تعلم نقل الملفات بين جهازك والخوادم بطريقة آمنة وعملية.
في هذا الدرس ستتعلم أشهر أدوات Linux لهذا الغرض: scp وrsync وsftp.
لماذا نقل الملفات باحتراف مهم في Linux؟
- نشر الأكواد وملفات الإعداد على الخوادم
- أخذ نسخ احتياطية واسترجاعها
- مزامنة مجلدات كبيرة بكفاءة
الأمر scp: نقل مباشر عبر SSH
scp local.txt user@server:/home/user/
scp user@server:/etc/nginx/nginx.conf .
scp -r project/ user@server:/var/www/
scp local remote: رفع ملفscp remote local: تحميل ملف-r: نقل مجلد كامل
استخدام منفذ SSH مخصص مع scp
scp -P 2222 app.tar.gz user@server:/tmp/
انتبه أن scp يستخدم -P (حرف كبير) لتحديد المنفذ.
الأمر rsync: مزامنة ذكية وسريعة
rsync -avz project/ user@server:/var/www/project/
rsync -avz user@server:/var/backups/ ./backups/
rsync -avz --delete build/ user@server:/var/www/app/
| الخيار | الفائدة |
|---|---|
-a |
وضع الأرشفة (يحافظ على الخصائص) |
-v |
تفاصيل النقل |
-z |
ضغط أثناء النقل |
--delete |
حذف الملفات غير الموجودة في المصدر |
تنبيه: استخدم
--delete بحذر شديد لأنه قد يحذف ملفات على الوجهة.
الأمر sftp: جلسة تفاعلية لنقل الملفات
sftp user@server.example.com
sftp -P 2222 user@server.example.com
أوامر داخل جلسة sftp:
ls
cd /var/www
put local.txt
get remote.log
mkdir uploads
exit
اختيار الأداة المناسبة: scp أم rsync أم sftp؟
- scp: نقل سريع وبسيط
- rsync: مزامنة فعالة لمجلدات كبيرة وتحديثات متكررة
- sftp: إدارة تفاعلية للملفات عن بُعد
أفضل ممارسات الأمان أثناء نقل الملفات
- استخدم مفاتيح SSH بدل كلمات المرور
- لا تنقل أسرار حساسة بدون تشفير إضافي عند الحاجة
- تحقق من المسار الهدف قبل النقل
- استخدم مستخدمًا بصلاحيات محدودة قدر الإمكان
تمرين عملي: نقل مجلد وتجربة المزامنة
mkdir -p /tmp/transfer-lab
echo "hello linux" > /tmp/transfer-lab/readme.txt
# نقل مباشر
scp -r /tmp/transfer-lab user@server:/tmp/
# مزامنة ذكية
rsync -avz /tmp/transfer-lab/ user@server:/tmp/transfer-lab/
إذا وصل الملف إلى الخادم بنجاح ثم عملت المزامنة بدون أخطاء، فقد أتقنت الأساس.
FAQ: أسئلة شائعة حول نقل الملفات في Linux
ما الفرق بين scp وrsync في Linux؟
scp مناسب للنسخ المباشر والبسيط، بينما rsync أذكى للمزامنة ونقل التغييرات فقط.
متى أستخدم sftp؟
استخدم sftp عندما تحتاج جلسة تفاعلية لرفع وتحميل وإدارة الملفات عبر SSH.
كيف أنقل مجلد كامل إلى خادم Linux؟
يمكنك استخدام scp -r أو rsync -avz لنقل المجلد بالكامل إلى المسار المطلوب على الخادم.