ডকসDocumentationTutorialsUsing mscp for Fast File Transfers

দ্রুত file transfer-এর জন্য mscp ব্যবহার

একাধিক SSH connection ব্যবহার করে আপনার Appbox server-এ high-speed file transfer করতে mscp (multi-threaded scp) কীভাবে ব্যবহার করবেন শিখুন।

mscp হলো scp-এর multi-threaded variant, যা একই সঙ্গে একাধিক SSH (SFTP) connection দিয়ে file copy করে। parallel connection ব্যবহার করার ফলে বড় file ও directory transfer অনেক দ্রুত হয়।

পূর্বশর্ত

mscp ব্যবহার করার আগে SFTP credential পেতে আপনার Appbox server-এ SFTPgo install করতে হবে।

Step 1: SFTPgo install করুন

  1. Appbox App Store-এ SFTPgo app page দেখুন
  2. আপনার server-এ SFTPgo যোগ করতে Install click করুন
  3. install হলে আপনি connection details পাবেন:
    • Username: আপনার SFTP username
    • Password: আপনার SFTP password
    • Hostname: যেমন, sftpgo.yourserver.appboxes.co
    • SFTP Port: যেমন, 25557
    • FTP/FTPS Port: যেমন, 25555
    • WebDav URL: WebDAV access-এর জন্য

mscp install করা

আপনার operating system অনুযায়ী installation method বেছে নিন:

macOS

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-এর native Windows binary নেই, তবে WSL (Windows Subsystem for Linux) দিয়ে ব্যবহার করা যায়:

Step 1: WSL install করুন

PowerShell Administrator হিসেবে open করে চালান:

wsl --install

prompt করলে computer restart করুন।

Step 2: WSL-এ mscp install করুন

WSL setup হওয়ার পর (Ubuntu default), WSL terminal খুলে চালান:

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

Source থেকে build করা

আপনার system-এর জন্য package available না থাকলে source থেকে mscp build করতে পারেন:

# 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

Basic usage

mscp syntax scp-এর মতো। নিচে common usage pattern দেওয়া হলো।

আপনার server-এ file upload করা

# -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/

directory upload করা

scp-এর মতো নয়, directory-এর জন্য mscp-তে -r flag লাগে না:

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

আপনার server থেকে file download করা

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

directory download করা

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

Advanced options

একাধিক connection ব্যবহার করা

defaultভাবে mscp একাধিক connection ব্যবহার করে। -n দিয়ে connection সংখ্যা specify করতে পারেন:

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

failed transfer resume করা (checkpointing)

interrupted transfer resume করতে mscp checkpointing support করে:

# 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 key authentication specify করা

SFTPgo দিয়ে SSH key authentication setup করলে:

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

bandwidth limit করা

transfer bandwidth limit করতে (shared connection-এ useful):

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

উদাহরণ: সম্পূর্ণ workflow

Appbox থেকে SFTPgo credential ব্যবহার করে একটি complete example:

# 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/

Performance tips

  1. বড় file-এর জন্য বেশি connection ব্যবহার করুন: বড় file transfer-এর জন্য -n value বাড়ান (যেমন, -n 8 বা -n 16)
  2. অনেক ছোট file-এর জন্য কম connection ব্যবহার করুন: অনেক ছোট file থাকা directory-তে কম connection বেশি efficient হতে পারে
  3. text file-এর জন্য compression enable করুন: mscp SSH compression inherit করে; text-heavy transfer-এর জন্য -C ব্যবহার করুন
  4. খুব বড় transfer-এর জন্য checkpointing ব্যবহার করুন: interrupted হলে resume করতে multi-gigabyte transfer-এর জন্য সবসময় checkpointing enable করুন

Troubleshooting

Connection Refused

আপনি SFTPgo settings-এর সঠিক SFTP port ব্যবহার করছেন কি না নিশ্চিত করুন (FTP port নয়):

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

Permission Denied

আপনার username ও password সঠিক কি না verify করুন। আগে standard SFTP client দিয়ে test করতে পারেন:

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

Slow transfers

parallel connection সংখ্যা adjust করে দেখুন:

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

অতিরিক্ত resource