Коришћење mscp за брзе преносе датотека
Научите како да користите mscp (multi-threaded scp) за брзе преносе датотека на ваш Appbox сервер помоћу више SSH веза.
mscp је multi-threaded варијанта scp која копира датотеке преко више SSH (SFTP) веза истовремено. То омогућава значајно брже преносе великих датотека и директоријума коришћењем паралелних веза.
Предуслови
Пре коришћења mscp, потребно је да инсталирате SFTPgo на свој Appbox сервер да бисте добили SFTP акредитиве.
Корак 1: Инсталирајте SFTPgo
- Посетите страницу SFTPgo апликације у Appbox App Store
- Кликните Install да додате SFTPgo на свој сервер
- Када се инсталира, добићете детаље за повезивање:
- Username: Ваше SFTP корисничко име
- Password: Ваша SFTP лозинка
- Hostname: нпр.
sftpgo.yourserver.appboxes.co - SFTP Port: нпр.
25557 - FTP/FTPS Port: нпр.
25555 - WebDav URL: За WebDAV приступ
Напомена
Чувајте своје SFTPgo акредитиве на безбедном. За mscp везе биће вам потребни hostname, корисничко име, лозинка и SFTP port.
Инсталирање 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 нема native Windows binaries, али можете га користити преко WSL (Windows Subsystem for Linux):
Корак 1: Инсталирајте WSL
Отворите PowerShell као Administrator и покрените:
wsl --installПоново покрените рачунар када се то затражи.
Корак 2: Инсталирајте mscp у WSL
Када је WSL подешен (Ubuntu је подразумеван), отворите WSL terminal и покрените:
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpWindows путање датотека у WSL
У WSL-у су ваши Windows дискови доступни испод /mnt/. На пример, C:\Users\YourName\Downloads постаје /mnt/c/Users/YourName/Downloads.
Build из source-а
Ако пакети нису доступни за ваш систем, можете build-овати mscp из source-а:
# 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 Port
У примерима испод, 25557 представља SFTP Port из ваших SFTPgo подешавања. Замените га својим стварним SFTP port-ом приказаним у SFTPgo Options панелу.
Отпремање датотеке на сервер
# -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 flag за директоријуме:
# -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/Наставак неуспелих преноса (checkpointing)
mscp подржава checkpointing за наставак прекинутих преноса:
# 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 аутентификације
Ако сте подесили SSH key аутентификацију са SFTPgo:
mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Ограничење bandwidth-а
Да ограничите transfer bandwidth (корисно на дељеним везама):
mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Пример: комплетан workflow
Ево комплетног примера који користи 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за преносе са много текста - Користите checkpointing за веома велике преносе: Увек укључите checkpointing за преносе од више гигабајта да бисте могли да наставите ако се прекину
Решавање проблема
Connection Refused
Уверите се да користите исправан SFTP port из SFTPgo подешавања (не FTP port):
mscp -P 25557 ... # Use your actual SFTP portPermission Denied
Проверите да ли су корисничко име и лозинка исправни. Можете прво тестирати стандардним SFTP клијентом:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coСпори преноси
Покушајте да прилагодите број паралелних веза:
mscp -P 25557 -n 16 ... # Increase connections