DokumentaceDocumentationTutorialsUsing mscp for Fast File Transfers

Použití mscp pro rychlé přenosy souborů

Naučte se používat mscp (multi-threaded scp) pro vysokorychlostní přenosy souborů na server Appbox pomocí více SSH připojení.

mscp je vícevláknová varianta scp, která kopíruje soubory přes více SSH (SFTP) připojení současně. Díky využití paralelních připojení umožňuje výrazně rychlejší přenosy velkých souborů a adresářů.

Předpoklady

Před použitím mscp musíte na svůj server Appbox nainstalovat SFTPgo, abyste získali přihlašovací údaje SFTP.

Krok 1: Instalace SFTPgo

  1. Navštivte stránku aplikace SFTPgo v Appbox App Store
  2. Kliknutím na Install přidejte SFTPgo na svůj server
  3. Po instalaci obdržíte údaje pro připojení:
    • Username: Vaše uživatelské jméno SFTP
    • Password: Vaše heslo SFTP
    • Hostname: např. sftpgo.yourserver.appboxes.co
    • SFTP Port: např. 25557
    • FTP/FTPS Port: např. 25555
    • WebDav URL: Pro přístup přes WebDAV

Instalace mscp

Vyberte způsob instalace pro svůj operační systém:

macOS

Pomocí Homebrew (doporučeno)

brew install upa/tap/mscp

Pomocí 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 nemá nativní binární soubory pro Windows, ale můžete ho použít přes WSL (Windows Subsystem for Linux):

Krok 1: Instalace WSL

Otevřete PowerShell jako správce a spusťte:

wsl --install

Po výzvě restartujte počítač.

Krok 2: Instalace mscp ve WSL

Po nastavení WSL (výchozí je Ubuntu) otevřete terminál WSL a spusťte:

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

Sestavení ze zdrojového kódu

Pokud pro váš systém nejsou balíčky dostupné, můžete mscp sestavit ze zdrojového kódu:

# 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

Základní použití

Syntaxe mscp je podobná scp. Zde jsou běžné vzory použití.

Nahrání souboru na 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/

Nahrání adresáře

Na rozdíl od scp mscp pro adresáře nevyžaduje příznak -r:

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

Stažení souboru ze serveru

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

Stažení adresáře

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

Pokročilé možnosti

Použití více připojení

Ve výchozím nastavení mscp používá více připojení. Počet připojení můžete určit pomocí -n:

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

Obnovení neúspěšných přenosů (checkpointing)

mscp podporuje checkpointing pro obnovení přerušených přenosů:

# 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

Určení ověření SSH klíčem

Pokud jste nastavili ověření SSH klíčem v SFTPgo:

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

Omezení šířky pásma

Pro omezení šířky pásma přenosu (užitečné na sdílených připojeních):

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

Příklad: kompletní pracovní postup

Zde je kompletní příklad s použitím přihlašovacích údajů SFTPgo z 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/

Tipy pro výkon

  1. Použijte více připojení pro velké soubory: Zvyšte hodnotu -n pro přenosy velkých souborů (např. -n 8 nebo -n 16)
  2. Použijte méně připojení pro mnoho malých souborů: U adresářů s mnoha malými soubory může být menší počet připojení efektivnější
  3. Zapněte kompresi pro textové soubory: mscp dědí kompresi SSH; pro přenosy s velkým množstvím textu použijte -C
  4. Použijte checkpointing pro velmi velké přenosy: U vícegigabajtových přenosů vždy zapněte checkpointing, aby bylo možné pokračovat po přerušení

Řešení problémů

Připojení odmítnuto

Ujistěte se, že používáte správný SFTP port z nastavení SFTPgo (ne FTP port):

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

Přístup odepřen

Ověřte, že vaše uživatelské jméno a heslo jsou správné. Nejprve to můžete otestovat standardním klientem SFTP:

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

Pomalé přenosy

Zkuste upravit počet paralelních připojení:

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

Další zdroje