Usar mscp para transferencias rápidas de archivos
Aprende a usar mscp (scp multihilo) para transferencias de archivos de alta velocidad a tu servidor Appbox usando varias conexiones SSH.
mscp es una variante multihilo de scp que copia archivos mediante varias conexiones SSH (SFTP) simultáneas. Esto permite transferencias mucho más rápidas para archivos y directorios grandes al utilizar conexiones paralelas.
Requisitos previos
Antes de usar mscp, debes instalar SFTPgo en tu servidor Appbox para obtener tus credenciales SFTP.
Paso 1: Instalar SFTPgo
- Visita la página de la app SFTPgo en Appbox App Store
- Haz clic en Install para añadir SFTPgo a tu servidor
- Una vez instalado, recibirás tus datos de conexión:
- Username: tu usuario SFTP
- Password: tu contraseña SFTP
- Hostname: por ejemplo,
sftpgo.yourserver.appboxes.co - SFTP Port: por ejemplo,
25557 - FTP/FTPS Port: por ejemplo,
25555 - WebDav URL: para acceso WebDAV
Nota
Mantén seguras tus credenciales de SFTPgo. Necesitarás el hostname, el usuario, la contraseña y el puerto SFTP para las conexiones con mscp.
Instalar mscp
Elige el método de instalación para tu sistema operativo:
macOS
Usando Homebrew (recomendado)
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 no tiene binarios nativos para Windows, pero puedes usarlo mediante WSL (Windows Subsystem for Linux):
Paso 1: Instalar WSL
Abre PowerShell como administrador y ejecuta:
wsl --installReinicia el equipo cuando se te indique.
Paso 2: Instalar mscp en WSL
Cuando WSL esté configurado (Ubuntu es la opción predeterminada), abre la terminal de WSL y ejecuta:
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpRutas de archivos de Windows en WSL
En WSL, tus unidades de Windows están accesibles bajo /mnt/. Por ejemplo, C:\Users\YourName\Downloads se convierte en /mnt/c/Users/YourName/Downloads.
Compilar desde el código fuente
Si no hay paquetes disponibles para tu sistema, puedes compilar mscp desde el código fuente:
# 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 básico
La sintaxis de mscp es similar a la de scp. Estos son patrones de uso comunes.
Importante: usa tu puerto SFTP
En los ejemplos siguientes, 25557 representa el SFTP Port de tus ajustes de SFTPgo. Sustitúyelo por el puerto SFTP real que aparece en tu panel Options de SFTPgo.
Subir un archivo a tu servidor
# -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/Subir un directorio
A diferencia de scp, mscp no requiere el flag -r para directorios:
# -P 25557 is the SFTP port from your SFTPgo Options
mscp -P 25557 /local/directory username@sftpgo.yourserver.appboxes.co:/remote/path/Descargar un archivo desde tu servidor
# Replace 25557 with your actual SFTP port
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/file.zip /local/destination/Descargar un directorio
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/directory/ /local/path/Opciones avanzadas
Usar varias conexiones
De forma predeterminada, mscp usa varias conexiones. Puedes especificar el número de conexiones con -n:
mscp -P 25557 -n 8 largefile.zip username@sftpgo.yourserver.appboxes.co:/destination/Reanudar transferencias fallidas (checkpointing)
mscp admite checkpointing para reanudar transferencias interrumpidas:
# 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 -rEspecificar autenticación con clave SSH
Si has configurado autenticación con clave SSH en SFTPgo:
mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Limitar el ancho de banda
Para limitar el ancho de banda de transferencia (útil en conexiones compartidas):
mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Ejemplo: flujo completo
Este es un ejemplo completo usando las credenciales de SFTPgo de 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/Consejos de rendimiento
- Usa más conexiones para archivos grandes: aumenta el valor de
-npara transferencias de archivos grandes (por ejemplo,-n 8o-n 16) - Usa menos conexiones para muchos archivos pequeños: en directorios con muchos archivos pequeños, menos conexiones puede ser más eficiente
- Activa la compresión para archivos de texto: mscp hereda la compresión de SSH; usa
-Cpara transferencias con mucho texto - Usa checkpointing para transferencias muy grandes: activa siempre checkpointing para transferencias de varios gigabytes y poder reanudarlas si se interrumpen
Solución de problemas
Conexión rechazada
Asegúrate de usar el puerto SFTP correcto de tus ajustes de SFTPgo (no el puerto FTP):
mscp -P 25557 ... # Use your actual SFTP portPermiso denegado
Verifica que tu usuario y contraseña sean correctos. Puedes probar primero con un cliente SFTP estándar:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coTransferencias lentas
Prueba a ajustar el número de conexiones paralelas:
mscp -P 25557 -n 16 ... # Increase connections