ДокументацијаDocumentationTutorialsUsing mscp for Fast File Transfers

Коришћење mscp за брзе преносе датотека

Научите како да користите mscp (multi-threaded scp) за брзе преносе датотека на ваш Appbox сервер помоћу више SSH веза.

mscp је multi-threaded варијанта scp која копира датотеке преко више SSH (SFTP) веза истовремено. То омогућава значајно брже преносе великих датотека и директоријума коришћењем паралелних веза.

Предуслови

Пре коришћења mscp, потребно је да инсталирате SFTPgo на свој Appbox сервер да бисте добили SFTP акредитиве.

Корак 1: Инсталирајте SFTPgo

  1. Посетите страницу SFTPgo апликације у Appbox App Store
  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 нема 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 mscp

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. Ево честих образаца употребе.

Отпремање датотеке на сервер

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

Савети за перформансе

  1. Користите више веза за велике датотеке: Повећајте вредност -n за преносе великих датотека (нпр. -n 8 или -n 16)
  2. Користите мање веза за много малих датотека: За директоријуме са много малих датотека, мање веза може бити ефикасније
  3. Укључите компресију за текстуалне датотеке: mscp наслеђује SSH компресију; користите -C за преносе са много текста
  4. Користите checkpointing за веома велике преносе: Увек укључите checkpointing за преносе од више гигабајта да бисте могли да наставите ако се прекину

Решавање проблема

Connection Refused

Уверите се да користите исправан SFTP port из SFTPgo подешавања (не FTP port):

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

Permission Denied

Проверите да ли су корисничко име и лозинка исправни. Можете прво тестирати стандардним SFTP клијентом:

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

Спори преноси

Покушајте да прилагодите број паралелних веза:

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

Додатни ресурси