استخدام mscp لنقل الملفات بسرعة
تعرّف إلى كيفية استخدام mscp (multi-threaded scp) لنقل الملفات بسرعة عالية إلى خادم Appbox عبر عدة اتصالات SSH.
mscp هو إصدار متعدد الخيوط من scp ينسخ الملفات عبر عدة اتصالات SSH (SFTP) في الوقت نفسه. يتيح ذلك عمليات نقل أسرع بكثير للملفات والمجلدات الكبيرة عبر الاستفادة من الاتصالات المتوازية.
المتطلبات
قبل استخدام mscp، تحتاج إلى تثبيت SFTPgo على خادم Appbox للحصول على بيانات اعتماد SFTP.
الخطوة 1: تثبيت SFTPgo
- افتح صفحة تطبيق SFTPgo في متجر تطبيقات Appbox
- انقر Install لإضافة SFTPgo إلى خادمك
- بعد التثبيت، ستحصل على تفاصيل الاتصال:
- Username: اسم مستخدم SFTP الخاص بك
- Password: كلمة مرور SFTP الخاصة بك
- Hostname: مثل
sftpgo.yourserver.appboxes.co - SFTP Port: مثل
25557 - FTP/FTPS Port: مثل
25555 - WebDav URL: للوصول عبر WebDAV
ملاحظة
احتفظ ببيانات اعتماد SFTPgo في مكان آمن. ستحتاج إلى اسم المضيف واسم المستخدم وكلمة المرور ومنفذ SFTP لاتصالات mscp.
تثبيت mscp
اختر طريقة التثبيت المناسبة لنظام التشغيل لديك:
macOS
باستخدام Homebrew (موصى به)
brew install upa/tap/mscpباستخدام MacPorts
sudo port install mscpUbuntu / Debian
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpRHEL / Fedora / CentOS / Rocky Linux / AlmaLinux
sudo dnf copr enable upaaa/mscp
sudo dnf install mscpWindows
لا يوفر 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مسارات ملفات Windows داخل WSL
في WSL، يمكن الوصول إلى أقراص Windows تحت /mnt/. على سبيل المثال، يصبح C:\Users\YourName\Downloads هو /mnt/c/Users/YourName/Downloads.
البناء من المصدر
إذا لم تكن الحزم متاحة لنظامك، يمكنك بناء 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. فيما يلي أنماط استخدام شائعة.
مهم: استخدم منفذ SFTP الخاص بك
في الأمثلة أدناه، يمثل 25557 منفذ SFTP من إعدادات SFTPgo لديك. استبدله بمنفذ SFTP الفعلي الظاهر في لوحة خيارات SFTPgo.
رفع ملف إلى خادمك
# -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/نصائح الأداء
- استخدم اتصالات أكثر للملفات الكبيرة: زد قيمة
-nلعمليات نقل الملفات الكبيرة (مثل-n 8أو-n 16) - استخدم اتصالات أقل للعديد من الملفات الصغيرة: بالنسبة للمجلدات التي تحتوي على ملفات صغيرة كثيرة، قد تكون الاتصالات الأقل أكثر كفاءة
- فعّل الضغط للملفات النصية: يرث mscp ضغط SSH؛ استخدم
-Cلعمليات النقل كثيرة النصوص - استخدم نقاط الحفظ لعمليات النقل الكبيرة جداً: فعّل نقاط الحفظ دائماً لعمليات نقل متعددة الجيجابايت للسماح بالاستئناف إذا انقطعت
استكشاف الأخطاء وإصلاحها
رفض الاتصال
تأكد من أنك تستخدم منفذ 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