انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

نقل الملفات إلى الخادم: دليل SCP وSFTP وrsync

دليل شامل لصياغة SCP والوضع التفاعلي لـ SFTP وrsync للمزامنة والنسخ الاحتياطي وWinSCP وFileZilla لمستخدمي Windows. نقل آمن للملفات إلى خوادم Linux.

وقت القراءة: 11 دقيقة إدارة الخادم
scpsftprsyncنقل الملفاتwinscpfilezillasshlinux

جدول المحتويات

نقل الملفات إلى الخادم: دليل SCP وSFTP وrsync

توجد عدة طرق آمنة لنقل الملفات إلى خادم Linux. يستخدم كل من SCP (بروتوكول النسخ الآمن) وSFTP (بروتوكول نقل الملفات عبر SSH) وrsync بنية SSH لنقل الملفات بشكل مشفر. يغطي هذا الدليل الأدوات الثلاثة والبدائل الرسومية لمستخدمي Windows.

نقل الملفات بـ SCP

SCP أداة بسيطة وسريعة لنسخ الملفات عبر SSH.

صياغة SCP الأساسية

hljs bash
# نسخ ملف محلي إلى الخادم
scp /local/file.txt user@server-ip:/remote/directory/

# نسخ من الخادم إلى الجهاز المحلي
scp user@server-ip:/remote/file.txt /local/directory/

# نسخ مجلد (-r تكراري)
scp -r /local/directory/ user@server-ip:/remote/directory/

# منفذ مخصص (-P بالأحرف الكبيرة)
scp -P 2222 file.txt user@server-ip:/destination/

# مع ملف مفتاح SSH
scp -i ~/.ssh/id_rsa file.txt user@server-ip:/destination/

# النسخ بين خادمين بعيدين
scp user1@server1:/file.txt user2@server2:/destination/

خيارات SCP

hljs bash
# النقل مع الضغط (-C)
scp -C large-file.tar.gz user@server-ip:/destination/

# إظهار التقدم (-v تفصيلي)
scp -v file.txt user@server-ip:/destination/

# تحديد النطاق الترددي (كيلوبايت/ثانية)
scp -l 1024 file.txt user@server-ip:/destination/

# ملفات متعددة
scp file1.txt file2.txt user@server-ip:/destination/

# مع حرف بدل
scp *.log user@server-ip:/var/log/backup/

SCP مثالي لنسخ الملفات البسيط. لمزامنة المجلدات الكبيرة أو النسخ الاحتياطي، rsync أكثر كفاءة.

نقل الملفات بـ SFTP

SFTP بروتوكول نقل ملفات متكامل يعمل عبر SSH. وهو البديل الآمن لـ FTP.

الاتصال بـ SFTP

hljs bash
# بدء جلسة SFTP
sftp user@server-ip

# مع منفذ مخصص
sftp -P 2222 user@server-ip

# مع مفتاح SSH
sftp -i ~/.ssh/id_rsa user@server-ip

أوامر SFTP التفاعلية

hljs bash
# سرد المجلد البعيد
ls
ls -la

# تغيير المجلد البعيد
cd /var/www/html

# تغيير المجلد المحلي
lcd ~/Downloads

# رفع ملف (محلي → بعيد)
put file.txt
put -r /local/directory/ /remote/directory/

# تنزيل ملف (بعيد → محلي)
get file.txt
get -r /remote/directory/ /local/directory/

# إنشاء مجلد بعيد
mkdir new-directory

# حذف ملف بعيد
rm file.txt

# إعادة تسمية ملف بعيد
rename old-name.txt new-name.txt

# إغلاق جلسة SFTP
exit

عمليات SFTP الدُفعية

hljs bash
# SFTP في الوضع الدُفعي
sftp -b - user@server-ip << 'EOF'
cd /var/www/html
put index.html
put style.css
EOF

المزامنة والنسخ الاحتياطي بـ rsync

rsync أداة قوية لمزامنة الملفات والمجلدات بكفاءة. تنقل الملفات المتغيرة فقط.

صياغة rsync الأساسية

hljs bash
# مزامنة مجلد محلي مع الخادم
rsync -avz /local/directory/ user@server-ip:/remote/directory/

# المزامنة من الخادم إلى الجهاز المحلي
rsync -avz user@server-ip:/remote/directory/ /local/directory/

# مع منفذ SSH مخصص
rsync -avz -e "ssh -p 2222" /local/ user@server-ip:/remote/

# مع مفتاح SSH
rsync -avz -e "ssh -i ~/.ssh/id_rsa" /local/ user@server-ip:/remote/

خيارات rsync

hljs bash
# أمر النسخ الاحتياطي الكامل
rsync -avzh --progress /var/www/ user@server-ip:/backup/www/

# المزامنة مع الحذف
rsync -avz --delete /local/ user@server-ip:/remote/

# المحاكاة أولاً
rsync -avz --dry-run /local/ user@server-ip:/remote/

# استثناء ملفات معينة
rsync -avz --exclude='*.log' --exclude='.git' /local/ user@server-ip:/remote/

# تحديد النطاق الترددي (كيلوبايت/ثانية)
rsync -avz --bwlimit=1024 /local/ user@server-ip:/remote/

النسخ الاحتياطي التلقائي بـ rsync

hljs bash
# نسخ احتياطي يومي مع cron
crontab -e

# نسخ احتياطي كل ليلة الساعة 02:00
0 2 * * * rsync -avz --delete /var/www/ user@backup-server:/backup/www/ >> /var/log/rsync-backup.log 2>&1

أقوى ميزة في rsync هي خوارزمية النقل التفاضلي: تنقل الكتل المتغيرة فقط. إذا تغير جزء صغير من ملف كبير، يرسل rsync هذا الجزء المتغير فقط، مما يوفر نطاقاً ترددياً كبيراً.

واجهات رسومية لمستخدمي Windows

WinSCP

WinSCP أشهر عميل SFTP/SCP لنظام Windows.

التثبيت والاتصال:

  1. حمّل من winscp.net
  2. أنشئ جلسة جديدة:
    • بروتوكول الملفات: SFTP
    • عنوان الخادم: server-ip
    • المنفذ: 22
    • اسم المستخدم وكلمة المرور
  3. لمفتاح SSH: متقدم → SSH → المصادقة → ملف المفتاح الخاص

FileZilla

FileZilla عميل SFTP متعدد المنصات لـ Windows وmacOS وLinux.

إعداد الاتصال:

  1. حمّل من filezilla-project.org
  2. مدير المواقع → موقع جديد:
    • البروتوكول: SFTP - SSH File Transfer Protocol
    • الخادم: server-ip
    • المنفذ: 22
  3. اتصل

إعداد SSH لاتصالات سهلة

hljs bash
# تعديل ~/.ssh/config
nano ~/.ssh/config
Host my-server
    HostName 203.0.113.50
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_rsa
hljs bash
# الاتصال الآن باسم مختصر
scp file.txt my-server:/destination/
sftp my-server
rsync -avz /local/ my-server:/remote/

استكشاف الأخطاء وإصلاحها

الاتصال مرفوض

hljs bash
# اختبار اتصال SSH
ssh -v user@server-ip

# التحقق من المنفذ
nmap -p 22 server-ip

# التحقق من جدار الحماية
sudo ufw status

الخلاصة

SCP وSFTP وrsync أدوات لا غنى عنها لنقل الملفات بأمان إلى خوادم Linux. استخدم SCP للنسخ البسيط وSFTP للإدارة التفاعلية وrsync للمزامنة والنسخ الاحتياطي. يمكن لمستخدمي Windows الوصول إلى نفس الوظائف عبر واجهات WinSCP أو FileZilla الرسومية.