الوثائقDocumentationTutorialsUsing mscp for Fast File Transfers

استخدام mscp لنقل الملفات بسرعة

تعرّف إلى كيفية استخدام mscp (multi-threaded scp) لنقل الملفات بسرعة عالية إلى خادم Appbox عبر عدة اتصالات SSH.

mscp هو إصدار متعدد الخيوط من scp ينسخ الملفات عبر عدة اتصالات SSH (SFTP) في الوقت نفسه. يتيح ذلك عمليات نقل أسرع بكثير للملفات والمجلدات الكبيرة عبر الاستفادة من الاتصالات المتوازية.

المتطلبات

قبل استخدام mscp، تحتاج إلى تثبيت SFTPgo على خادم Appbox للحصول على بيانات اعتماد SFTP.

الخطوة 1: تثبيت SFTPgo

  1. افتح صفحة تطبيق SFTPgo في متجر تطبيقات Appbox
  2. انقر Install لإضافة SFTPgo إلى خادمك
  3. بعد التثبيت، ستحصل على تفاصيل الاتصال:
    • Username: اسم مستخدم SFTP الخاص بك
    • Password: كلمة مرور SFTP الخاصة بك
    • Hostname: مثل sftpgo.yourserver.appboxes.co
    • SFTP Port: مثل 25557
    • FTP/FTPS Port: مثل 25555
    • WebDav URL: للوصول عبر WebDAV

تثبيت mscp

اختر طريقة التثبيت المناسبة لنظام التشغيل لديك:

macOS

باستخدام Homebrew (موصى به)

brew install upa/tap/mscp

باستخدام MacPorts

sudo port install mscp

Ubuntu / Debian

sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscp

RHEL / Fedora / CentOS / Rocky Linux / AlmaLinux

sudo dnf copr enable upaaa/mscp
sudo dnf install mscp

Windows

لا يوفر mscp ملفات تنفيذية أصلية لـ Windows، لكن يمكنك استخدامه عبر WSL (Windows Subsystem for Linux):

الخطوة 1: تثبيت WSL

افتح PowerShell كمسؤول وشغّل:

wsl --install

أعد تشغيل الحاسوب عند الطلب.

الخطوة 2: تثبيت mscp داخل WSL

بعد إعداد WSL (Ubuntu هو الافتراضي)، افتح طرفية WSL وشغّل:

sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscp

البناء من المصدر

إذا لم تكن الحزم متاحة لنظامك، يمكنك بناء mscp من المصدر:

# Clone the repository
git clone https://github.com/upa/mscp.git
cd mscp
 
# Prepare patched libssh
git submodule update --init
patch -d libssh -p1 < patch/$(git -C libssh describe).patch
 
# Install build dependencies
bash ./scripts/install-build-deps.sh
 
# Build
mkdir build && cd build
cmake ..
make
 
# Install
sudo make install

الاستخدام الأساسي

تشبه صيغة mscp صيغة scp. فيما يلي أنماط استخدام شائعة.

رفع ملف إلى خادمك

# -P specifies the SFTP port (use your SFTP port from SFTPgo settings)
mscp -P 25557 localfile.zip username@sftpgo.yourserver.appboxes.co:/path/to/destination/

رفع مجلد

على عكس scp، لا يحتاج mscp إلى علم -r للمجلدات:

# -P 25557 is the SFTP port from your SFTPgo Options
mscp -P 25557 /local/directory username@sftpgo.yourserver.appboxes.co:/remote/path/

تنزيل ملف من خادمك

# Replace 25557 with your actual SFTP port
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/file.zip /local/destination/

تنزيل مجلد

mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/directory/ /local/path/

خيارات متقدمة

استخدام عدة اتصالات

يستخدم mscp عدة اتصالات افتراضياً. يمكنك تحديد عدد الاتصالات باستخدام -n:

mscp -P 25557 -n 8 largefile.zip username@sftpgo.yourserver.appboxes.co:/destination/

استئناف عمليات النقل الفاشلة (نقاط الحفظ)

يدعم mscp نقاط الحفظ لاستئناف عمليات النقل المتقطعة:

# Enable checkpointing
mscp -P 25557 -C /path/to/checkpoint.json largefile.zip username@server:/destination/
 
# Resume a failed transfer
mscp -P 25557 -C /path/to/checkpoint.json -r

تحديد مصادقة مفتاح SSH

إذا كنت قد أعددت مصادقة مفاتيح SSH مع SFTPgo:

mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/

تحديد النطاق الترددي

لتحديد نطاق نقل البيانات (مفيد على الاتصالات المشتركة):

mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/

مثال: سير عمل كامل

فيما يلي مثال كامل يستخدم بيانات اعتماد SFTPgo من Appbox:

# Set your credentials (replace with your actual values from SFTPgo Options)
HOST="sftpgo.yourserver.appboxes.co"  # Your Hostname
PORT="25557"                           # Your SFTP Port (not FTP port!)
USER="your_username"                   # Your Username
 
# Upload a large file using 4 connections
mscp -P $PORT -n 4 ~/Downloads/large-backup.tar.gz $USER@$HOST:/backups/
 
# Upload an entire directory
mscp -P $PORT ~/Projects/my-website/ $USER@$HOST:/www/
 
# Download files from server
mscp -P $PORT $USER@$HOST:/media/movies/ ~/Downloads/movies/

نصائح الأداء

  1. استخدم اتصالات أكثر للملفات الكبيرة: زد قيمة -n لعمليات نقل الملفات الكبيرة (مثل -n 8 أو -n 16)
  2. استخدم اتصالات أقل للعديد من الملفات الصغيرة: بالنسبة للمجلدات التي تحتوي على ملفات صغيرة كثيرة، قد تكون الاتصالات الأقل أكثر كفاءة
  3. فعّل الضغط للملفات النصية: يرث mscp ضغط SSH؛ استخدم -C لعمليات النقل كثيرة النصوص
  4. استخدم نقاط الحفظ لعمليات النقل الكبيرة جداً: فعّل نقاط الحفظ دائماً لعمليات نقل متعددة الجيجابايت للسماح بالاستئناف إذا انقطعت

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

رفض الاتصال

تأكد من أنك تستخدم منفذ SFTP الصحيح من إعدادات SFTPgo لديك (وليس منفذ FTP):

mscp -P 25557 ...  # Use your actual SFTP port

رفض الإذن

تحقق من صحة اسم المستخدم وكلمة المرور. يمكنك الاختبار أولاً باستخدام عميل SFTP قياسي:

sftp -P 25557 username@sftpgo.yourserver.appboxes.co

بطء عمليات النقل

جرّب تعديل عدد الاتصالات المتوازية:

mscp -P 25557 -n 16 ...  # Increase connections

موارد إضافية