DocumentațieDocumentationTutorialsUsing mscp for Fast File Transfers

Folosirea mscp pentru transferuri rapide de fișiere

Învață cum să folosești mscp (multi-threaded scp) pentru transferuri de fișiere de mare viteză către serverul tău Appbox, folosind mai multe conexiuni SSH.

mscp este o variantă multi-threaded a scp, care copiază fișiere prin mai multe conexiuni SSH (SFTP) simultan. Aceasta permite transferuri semnificativ mai rapide pentru fișiere și directoare mari prin utilizarea conexiunilor paralele.

Cerințe preliminare

Înainte de a folosi mscp, trebuie să instalezi SFTPgo pe serverul tău Appbox pentru a obține credențialele SFTP.

Pasul 1: Instalează SFTPgo

  1. Vizitează pagina aplicației SFTPgo din Appbox App Store
  2. Click pe Install pentru a adăuga SFTPgo pe serverul tău
  3. După instalare, vei primi detaliile de conectare:
    • Username: Numele tău de utilizator SFTP
    • Password: Parola ta SFTP
    • Hostname: de ex., sftpgo.yourserver.appboxes.co
    • SFTP Port: de ex., 25557
    • FTP/FTPS Port: de ex., 25555
    • WebDav URL: Pentru acces WebDAV

Instalarea mscp

Alege metoda de instalare pentru sistemul tău de operare:

macOS

Folosind Homebrew (recomandat)

brew install upa/tap/mscp

Folosind 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 nu are binare native pentru Windows, dar îl poți folosi prin WSL (Windows Subsystem for Linux):

Pasul 1: Instalează WSL

Deschide PowerShell ca Administrator și rulează:

wsl --install

Repornește computerul când ți se solicită.

Pasul 2: Instalează mscp în WSL

După configurarea WSL (Ubuntu este implicit), deschide terminalul WSL și rulează:

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

Construirea din sursă

Dacă pachetele nu sunt disponibile pentru sistemul tău, poți construi mscp din sursă:

# 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

Utilizare de bază

Sintaxa mscp este similară cu scp. Iată câteva modele comune de utilizare.

Încarcă un fișier pe serverul tău

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

Încarcă un director

Spre deosebire de scp, mscp nu necesită flag-ul -r pentru directoare:

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

Descarcă un fișier de pe serverul tău

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

Descarcă un director

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

Opțiuni avansate

Folosirea mai multor conexiuni

Implicit, mscp folosește mai multe conexiuni. Poți specifica numărul de conexiuni cu -n:

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

Reluarea transferurilor eșuate (checkpointing)

mscp acceptă checkpointing pentru a relua transferurile întrerupte:

# 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

Specifică autentificarea cu cheie SSH

Dacă ai configurat autentificarea cu cheie SSH în SFTPgo:

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

Limitează lățimea de bandă

Pentru a limita lățimea de bandă a transferului (util pe conexiuni partajate):

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

Exemplu: flux complet

Iată un exemplu complet folosind credențialele SFTPgo din 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/

Sfaturi pentru performanță

  1. Folosește mai multe conexiuni pentru fișiere mari: Mărește valoarea -n pentru transferuri de fișiere mari (de ex., -n 8 sau -n 16)
  2. Folosește mai puține conexiuni pentru multe fișiere mici: Pentru directoare cu multe fișiere mici, mai puține conexiuni pot fi mai eficiente
  3. Activează compresia pentru fișiere text: mscp moștenește compresia SSH; folosește -C pentru transferuri cu mult text
  4. Folosește checkpointing pentru transferuri foarte mari: Activează întotdeauna checkpointing pentru transferuri de mai mulți gigabytes, pentru a permite reluarea dacă sunt întrerupte

Depanare

Conexiune refuzată

Asigură-te că folosești portul SFTP corect din setările SFTPgo (nu portul FTP):

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

Permisiune refuzată

Verifică dacă numele de utilizator și parola sunt corecte. Poți testa mai întâi cu un client SFTP standard:

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

Transferuri lente

Încearcă să ajustezi numărul de conexiuni paralele:

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

Resurse suplimentare