DokumentasiDocumentationTutorialsUsing mscp for Fast File Transfers

Menggunakan mscp untuk Transfer File Cepat

Pelajari cara menggunakan mscp (multi-threaded scp) untuk transfer file berkecepatan tinggi ke server Appbox Anda menggunakan beberapa koneksi SSH.

mscp adalah varian multi-threaded dari scp yang menyalin file melalui beberapa koneksi SSH (SFTP) secara bersamaan. Ini memungkinkan transfer yang jauh lebih cepat untuk file dan direktori besar dengan memanfaatkan koneksi paralel.

Prasyarat

Sebelum menggunakan mscp, Anda perlu menginstal SFTPgo di server Appbox Anda untuk mendapatkan kredensial SFTP.

Langkah 1: Instal SFTPgo

  1. Kunjungi halaman aplikasi SFTPgo di Appbox App Store
  2. Klik Install untuk menambahkan SFTPgo ke server Anda
  3. Setelah terinstal, Anda akan menerima detail koneksi:
    • Username: Username SFTP Anda
    • Password: Password SFTP Anda
    • Hostname: misalnya, sftpgo.yourserver.appboxes.co
    • SFTP Port: misalnya, 25557
    • FTP/FTPS Port: misalnya, 25555
    • WebDav URL: Untuk akses WebDAV

Menginstal mscp

Pilih metode instalasi untuk sistem operasi Anda:

macOS

Menggunakan Homebrew (Direkomendasikan)

brew install upa/tap/mscp

Menggunakan 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 tidak memiliki binary Windows native, tetapi Anda dapat menggunakannya melalui WSL (Windows Subsystem for Linux):

Langkah 1: Instal WSL

Buka PowerShell sebagai Administrator dan jalankan:

wsl --install

Restart komputer Anda saat diminta.

Langkah 2: Instal mscp di WSL

Setelah WSL disiapkan (Ubuntu adalah default), buka terminal WSL dan jalankan:

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

Build dari Source

Jika package tidak tersedia untuk sistem Anda, Anda dapat membangun mscp dari 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

Penggunaan Dasar

Sintaks mscp mirip dengan scp. Berikut pola penggunaan yang umum.

Upload File ke Server Anda

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

Upload Direktori

Berbeda dari scp, mscp tidak memerlukan flag -r untuk direktori:

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

Download File dari Server Anda

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

Download Direktori

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

Opsi Lanjutan

Menggunakan Beberapa Koneksi

Secara default, mscp menggunakan beberapa koneksi. Anda dapat menentukan jumlah koneksi dengan -n:

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

Melanjutkan Transfer yang Gagal (Checkpointing)

mscp mendukung checkpointing untuk melanjutkan transfer yang terputus:

# 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

Menentukan Autentikasi SSH Key

Jika Anda telah menyiapkan autentikasi SSH key dengan SFTPgo:

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

Membatasi Bandwidth

Untuk membatasi bandwidth transfer (berguna pada koneksi bersama):

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

Contoh: Workflow Lengkap

Berikut contoh lengkap menggunakan kredensial SFTPgo dari 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/

Tips Performa

  1. Gunakan lebih banyak koneksi untuk file besar: Naikkan nilai -n untuk transfer file besar (misalnya, -n 8 atau -n 16)
  2. Gunakan lebih sedikit koneksi untuk banyak file kecil: Untuk direktori dengan banyak file kecil, koneksi yang lebih sedikit mungkin lebih efisien
  3. Aktifkan kompresi untuk file teks: mscp mewarisi kompresi SSH; gunakan -C untuk transfer yang banyak berisi teks
  4. Gunakan checkpointing untuk transfer sangat besar: Selalu aktifkan checkpointing untuk transfer multi-gigabyte agar bisa dilanjutkan jika terputus

Pemecahan Masalah

Koneksi Ditolak

Pastikan Anda menggunakan port SFTP yang benar dari pengaturan SFTPgo (bukan port FTP):

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

Permission Denied

Verifikasi username dan password Anda benar. Anda dapat mengujinya terlebih dahulu dengan klien SFTP standar:

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

Transfer Lambat

Coba sesuaikan jumlah koneksi paralel:

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

Resource Tambahan