Usare mscp per trasferimenti file veloci
Scopri come usare mscp (multi-threaded scp) per trasferimenti file ad alta velocità verso il tuo server Appbox usando più connessioni SSH.
mscp è una variante multi-threaded di scp che copia file su più connessioni SSH (SFTP) contemporaneamente. Questo consente trasferimenti significativamente più veloci per file e directory di grandi dimensioni usando connessioni parallele.
Prerequisiti
Prima di usare mscp, devi installare SFTPgo sul tuo server Appbox per ottenere le credenziali SFTP.
Passaggio 1: installa SFTPgo
- Visita la pagina dell'app SFTPgo nell'Appbox App Store
- Fai clic su Install per aggiungere SFTPgo al tuo server
- Una volta installato, riceverai i dettagli di connessione:
- Username: il tuo nome utente SFTP
- Password: la tua password SFTP
- Hostname: ad es.
sftpgo.yourserver.appboxes.co - SFTP Port: ad es.
25557 - FTP/FTPS Port: ad es.
25555 - WebDav URL: per l'accesso WebDAV
Nota
Conserva al sicuro le tue credenziali SFTPgo. Ti serviranno hostname, nome utente, password e porta SFTP per le connessioni mscp.
Installare mscp
Scegli il metodo di installazione per il tuo sistema operativo:
macOS
Usando Homebrew (consigliato)
brew install upa/tap/mscpUsando 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 non dispone di binari Windows nativi, ma puoi usarlo tramite WSL (Windows Subsystem for Linux):
Passaggio 1: installa WSL
Apri PowerShell come Administrator ed esegui:
wsl --installRiavvia il computer quando richiesto.
Passaggio 2: installa mscp in WSL
Dopo aver configurato WSL (Ubuntu è l'impostazione predefinita), apri il terminale WSL ed esegui:
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpPercorsi file Windows in WSL
In WSL, le unità Windows sono accessibili sotto /mnt/. Ad esempio, C:\Users\YourName\Downloads diventa /mnt/c/Users/YourName/Downloads.
Compilare dal sorgente
Se i pacchetti non sono disponibili per il tuo sistema, puoi compilare mscp dal sorgente:
# 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 installUso di base
La sintassi di mscp è simile a scp. Ecco alcuni pattern di utilizzo comuni.
Importante: usa la tua porta SFTP
Negli esempi sotto, 25557 rappresenta la SFTP Port dalle tue impostazioni SFTPgo. Sostituiscila con la porta SFTP effettiva mostrata nel pannello Options di SFTPgo.
Caricare un file sul tuo server
# -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/Caricare una directory
A differenza di scp, mscp non richiede il flag -r per le directory:
# -P 25557 is the SFTP port from your SFTPgo Options
mscp -P 25557 /local/directory username@sftpgo.yourserver.appboxes.co:/remote/path/Scaricare un file dal tuo server
# Replace 25557 with your actual SFTP port
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/file.zip /local/destination/Scaricare una directory
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/directory/ /local/path/Opzioni avanzate
Usare più connessioni
Per impostazione predefinita, mscp usa più connessioni. Puoi specificare il numero di connessioni con -n:
mscp -P 25557 -n 8 largefile.zip username@sftpgo.yourserver.appboxes.co:/destination/Riprendere trasferimenti non riusciti (checkpointing)
mscp supporta il checkpointing per riprendere trasferimenti interrotti:
# 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 -rSpecificare l'autenticazione con chiave SSH
Se hai configurato l'autenticazione con chiave SSH in SFTPgo:
mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Limitare la larghezza di banda
Per limitare la larghezza di banda del trasferimento (utile su connessioni condivise):
mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Esempio: workflow completo
Ecco un esempio completo che usa le credenziali SFTPgo da 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/Suggerimenti per le prestazioni
- Usa più connessioni per file grandi: aumenta il valore
-nper trasferimenti di file grandi (ad es.-n 8o-n 16) - Usa meno connessioni per molti file piccoli: per directory con molti file piccoli, meno connessioni possono essere più efficienti
- Abilita la compressione per i file di testo: mscp eredita la compressione SSH; usa
-Cper trasferimenti con molto testo - Usa il checkpointing per trasferimenti molto grandi: abilita sempre il checkpointing per trasferimenti multi-gigabyte per consentire la ripresa in caso di interruzione
Risoluzione dei problemi
Connessione rifiutata
Assicurati di usare la porta SFTP corretta dalle impostazioni SFTPgo (non la porta FTP):
mscp -P 25557 ... # Use your actual SFTP portPermesso negato
Verifica che nome utente e password siano corretti. Puoi prima testare con un client SFTP standard:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coTrasferimenti lenti
Prova a regolare il numero di connessioni parallele:
mscp -P 25557 -n 16 ... # Increase connections