দ্রুত 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 করুন
- Appbox App Store-এ SFTPgo app page দেখুন
- আপনার server-এ SFTPgo যোগ করতে Install click করুন
- 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-এর জন্য
নোট
আপনার SFTPgo credential নিরাপদে রাখুন। mscp connection-এর জন্য hostname, username, password এবং SFTP port দরকার হবে।
mscp install করা
আপনার operating system অনুযায়ী installation method বেছে নিন:
macOS
Homebrew ব্যবহার করে (recommended)
brew install upa/tap/mscpMacPorts ব্যবহার করে
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-এর native Windows binary নেই, তবে WSL (Windows Subsystem for Linux) দিয়ে ব্যবহার করা যায়:
Step 1: WSL install করুন
PowerShell Administrator হিসেবে open করে চালান:
wsl --installprompt করলে 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 mscpWSL-এ Windows file path
WSL-এ আপনার Windows drive /mnt/-এর নিচে access করা যায়। উদাহরণস্বরূপ, C:\Users\YourName\Downloads হয়ে যায় /mnt/c/Users/YourName/Downloads।
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 installBasic usage
mscp syntax scp-এর মতো। নিচে common usage pattern দেওয়া হলো।
গুরুত্বপূর্ণ: আপনার SFTP Port ব্যবহার করুন
নিচের exampleগুলোতে 25557 আপনার SFTPgo settings-এর SFTP Port বোঝায়। আপনার SFTPgo Options panel-এ দেখানো actual SFTP port দিয়ে এটি replace করুন।
আপনার 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 -rSSH 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
- বড় file-এর জন্য বেশি connection ব্যবহার করুন: বড় file transfer-এর জন্য
-nvalue বাড়ান (যেমন,-n 8বা-n 16) - অনেক ছোট file-এর জন্য কম connection ব্যবহার করুন: অনেক ছোট file থাকা directory-তে কম connection বেশি efficient হতে পারে
- text file-এর জন্য compression enable করুন: mscp SSH compression inherit করে; text-heavy transfer-এর জন্য
-Cব্যবহার করুন - খুব বড় 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 portPermission Denied
আপনার username ও password সঠিক কি না verify করুন। আগে standard SFTP client দিয়ে test করতে পারেন:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coSlow transfers
parallel connection সংখ্যা adjust করে দেখুন:
mscp -P 25557 -n 16 ... # Increase connections