Używanie mscp do szybkich transferów plików
Dowiedz się, jak używać mscp (multi-threaded scp) do szybkich transferów plików na serwer Appbox z użyciem wielu połączeń SSH.
mscp to wielowątkowy wariant scp, który kopiuje pliki przez wiele połączeń SSH (SFTP) jednocześnie. Umożliwia to znacznie szybsze transfery dużych plików i katalogów dzięki wykorzystaniu połączeń równoległych.
Wymagania wstępne
Przed użyciem mscp musisz zainstalować SFTPgo na swoim serwerze Appbox, aby uzyskać dane logowania SFTP.
Krok 1: Zainstaluj SFTPgo
- Odwiedź stronę aplikacji SFTPgo w Appbox App Store
- Kliknij Install, aby dodać SFTPgo do swojego serwera
- Po instalacji otrzymasz dane połączenia:
- Nazwa użytkownika: Twoja nazwa użytkownika SFTP
- Hasło: Twoje hasło SFTP
- Nazwa hosta: np.
sftpgo.yourserver.appboxes.co - Port SFTP: np.
25557 - Port FTP/FTPS: np.
25555 - Adres URL WebDav: Do dostępu WebDAV
Uwaga
Przechowuj dane logowania SFTPgo w bezpiecznym miejscu. Do połączeń mscp potrzebne będą nazwa hosta, nazwa użytkownika, hasło i port SFTP.
Instalowanie mscp
Wybierz metodę instalacji dla swojego systemu operacyjnego:
macOS
Użycie Homebrew (zalecane)
brew install upa/tap/mscpUżycie 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 nie ma natywnych binariów dla Windows, ale możesz używać go przez WSL (Windows Subsystem for Linux):
Krok 1: Zainstaluj WSL
Otwórz PowerShell jako Administrator i uruchom:
wsl --installPo wyświetleniu monitu uruchom komputer ponownie.
Krok 2: Zainstaluj mscp w WSL
Po skonfigurowaniu WSL (domyślnie Ubuntu) otwórz terminal WSL i uruchom:
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpŚcieżki plików Windows w WSL
W WSL dyski Windows są dostępne w /mnt/. Na przykład C:\Users\YourName\Downloads staje się /mnt/c/Users/YourName/Downloads.
Budowanie ze źródeł
Jeśli pakiety nie są dostępne dla Twojego systemu, możesz zbudować mscp ze źródeł:
# 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 installPodstawowe użycie
Składnia mscp jest podobna do scp. Oto typowe wzorce użycia.
Ważne: użyj swojego portu SFTP
W poniższych przykładach 25557 reprezentuje Port SFTP z ustawień SFTPgo. Zastąp go rzeczywistym portem SFTP widocznym w panelu SFTPgo Options.
Prześlij plik na swój serwer
# -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/Prześlij katalog
W przeciwieństwie do scp, mscp nie wymaga flagi -r dla katalogów:
# -P 25557 is the SFTP port from your SFTPgo Options
mscp -P 25557 /local/directory username@sftpgo.yourserver.appboxes.co:/remote/path/Pobierz plik ze swojego serwera
# Replace 25557 with your actual SFTP port
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/file.zip /local/destination/Pobierz katalog
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/directory/ /local/path/Opcje zaawansowane
Używanie wielu połączeń
Domyślnie mscp używa wielu połączeń. Liczbę połączeń możesz określić za pomocą -n:
mscp -P 25557 -n 8 largefile.zip username@sftpgo.yourserver.appboxes.co:/destination/Wznawianie nieudanych transferów (checkpointing)
mscp obsługuje checkpointing, aby wznawiać przerwane transfery:
# 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 -rOkreślanie uwierzytelniania kluczem SSH
Jeśli skonfigurowałeś uwierzytelnianie kluczem SSH w SFTPgo:
mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Ograniczanie przepustowości
Aby ograniczyć przepustowość transferu (przydatne na współdzielonych połączeniach):
mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Przykład: kompletny workflow
Oto kompletny przykład z użyciem danych logowania 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/Wskazówki dotyczące wydajności
- Używaj większej liczby połączeń dla dużych plików: Zwiększ wartość
-nprzy transferach dużych plików (np.-n 8albo-n 16) - Używaj mniejszej liczby połączeń dla wielu małych plików: W przypadku katalogów z wieloma małymi plikami mniej połączeń może być bardziej efektywne
- Włącz kompresję dla plików tekstowych: mscp dziedziczy kompresję SSH; użyj
-Cprzy transferach z dużą ilością tekstu - Używaj checkpointingu dla bardzo dużych transferów: Zawsze włączaj checkpointing dla transferów wielogigabajtowych, aby umożliwić wznowienie w razie przerwania
Rozwiązywanie problemów
Połączenie odrzucone
Upewnij się, że używasz poprawnego portu SFTP z ustawień SFTPgo (nie portu FTP):
mscp -P 25557 ... # Use your actual SFTP portOdmowa dostępu
Sprawdź, czy nazwa użytkownika i hasło są poprawne. Możesz najpierw przetestować połączenie standardowym klientem SFTP:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coWolne transfery
Spróbuj dostosować liczbę połączeń równoległych:
mscp -P 25557 -n 16 ... # Increase connections