Usando mscp para transferências rápidas de arquivos
Aprenda a usar mscp (scp multithread) para transferências de arquivos em alta velocidade para seu servidor Appbox usando várias conexões SSH.
mscp é uma variante multithread do scp que copia arquivos por várias conexões SSH (SFTP) simultâneas. Isso permite transferências significativamente mais rápidas de arquivos e diretórios grandes usando conexões paralelas.
Pré-requisitos
Antes de usar o mscp, você precisa instalar o SFTPgo no seu servidor Appbox para obter suas credenciais de SFTP.
Etapa 1: Instale o SFTPgo
- Acesse a página do app SFTPgo na App Store da Appbox
- Clique em Install para adicionar o SFTPgo ao seu servidor
- Depois de instalado, você receberá seus detalhes de conexão:
- Username: Seu nome de usuário SFTP
- Password: Sua senha SFTP
- Hostname: por exemplo,
sftpgo.yourserver.appboxes.co - SFTP Port: por exemplo,
25557 - FTP/FTPS Port: por exemplo,
25555 - WebDav URL: para acesso WebDAV
Observação
Guarde suas credenciais do SFTPgo com segurança. Você precisará do hostname, nome de usuário, senha e porta SFTP para conexões com mscp.
Instalando o mscp
Escolha o método de instalação para o seu sistema operacional:
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
O mscp não tem binários nativos para Windows, mas você pode usá-lo pelo WSL (Windows Subsystem for Linux):
Etapa 1: Instale o WSL
Abra o PowerShell como Administrador e execute:
wsl --installReinicie o computador quando solicitado.
Etapa 2: Instale o mscp no WSL
Depois que o WSL estiver configurado (Ubuntu é o padrão), abra o terminal do WSL e execute:
sudo add-apt-repository ppa:upaa/mscp
sudo apt-get update
sudo apt-get install mscpCaminhos de arquivos do Windows no WSL
No WSL, suas unidades do Windows ficam acessíveis em /mnt/. Por exemplo, C:\Users\YourName\Downloads se torna /mnt/c/Users/YourName/Downloads.
Compilando a partir do código-fonte
Se os pacotes não estiverem disponíveis para o seu sistema, você pode compilar o mscp a partir do código-fonte:
# Clone o repositório
git clone https://github.com/upa/mscp.git
cd mscp
# Prepare a libssh com patch
git submodule update --init
patch -d libssh -p1 < patch/$(git -C libssh describe).patch
# Instale as dependências de build
bash ./scripts/install-build-deps.sh
# Compile
mkdir build && cd build
cmake ..
make
# Instale
sudo make installUso básico
A sintaxe do mscp é parecida com a do scp. Veja alguns padrões comuns de uso.
Importante: use sua porta SFTP
Nos exemplos abaixo, 25557 representa a SFTP Port das suas configurações do SFTPgo. Substitua esse valor pela porta SFTP real exibida no painel Options do SFTPgo.
Envie um arquivo para seu servidor
# -P especifica a porta SFTP (use sua porta SFTP das configurações do SFTPgo)
mscp -P 25557 localfile.zip username@sftpgo.yourserver.appboxes.co:/path/to/destination/Envie um diretório
Ao contrário do scp, o mscp não exige a flag -r para diretórios:
# -P 25557 é a porta SFTP das Options do SFTPgo
mscp -P 25557 /local/directory username@sftpgo.yourserver.appboxes.co:/remote/path/Baixe um arquivo do seu servidor
# Substitua 25557 pela sua porta SFTP real
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/file.zip /local/destination/Baixe um diretório
mscp -P 25557 username@sftpgo.yourserver.appboxes.co:/remote/directory/ /local/path/Opções avançadas
Usando várias conexões
Por padrão, o mscp usa várias conexões. Você pode especificar o número de conexões com -n:
mscp -P 25557 -n 8 largefile.zip username@sftpgo.yourserver.appboxes.co:/destination/Retomar transferências com falha (checkpointing)
O mscp oferece suporte a checkpointing para retomar transferências interrompidas:
# Ative o checkpointing
mscp -P 25557 -C /path/to/checkpoint.json largefile.zip username@server:/destination/
# Retome uma transferência com falha
mscp -P 25557 -C /path/to/checkpoint.json -rEspecifique autenticação por chave SSH
Se você configurou autenticação por chave SSH com o SFTPgo:
mscp -P 25557 -i ~/.ssh/your_key localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Limite a largura de banda
Para limitar a largura de banda da transferência (útil em conexões compartilhadas):
mscp -P 25557 -l 10M localfile.zip username@sftpgo.yourserver.appboxes.co:/destination/Exemplo: fluxo completo
Veja um exemplo completo usando as credenciais do SFTPgo fornecidas pela Appbox:
# Defina suas credenciais (substitua pelos valores reais das Options do SFTPgo)
HOST="sftpgo.yourserver.appboxes.co" # Seu Hostname
PORT="25557" # Sua SFTP Port (não a porta FTP!)
USER="your_username" # Seu Username
# Envie um arquivo grande usando 4 conexões
mscp -P $PORT -n 4 ~/Downloads/large-backup.tar.gz $USER@$HOST:/backups/
# Envie um diretório inteiro
mscp -P $PORT ~/Projects/my-website/ $USER@$HOST:/www/
# Baixe arquivos do servidor
mscp -P $PORT $USER@$HOST:/media/movies/ ~/Downloads/movies/Dicas de desempenho
- Use mais conexões para arquivos grandes: aumente o valor de
-npara transferências de arquivos grandes (por exemplo,-n 8ou-n 16) - Use menos conexões para muitos arquivos pequenos: para diretórios com muitos arquivos pequenos, menos conexões podem ser mais eficientes
- Ative compressão para arquivos de texto: o mscp herda a compressão do SSH; use
-Cpara transferências com muito texto - Use checkpointing para transferências muito grandes: sempre ative checkpointing para transferências de vários gigabytes, permitindo retomá-las se forem interrompidas
Solução de problemas
Conexão recusada
Garanta que você está usando a porta SFTP correta das configurações do SFTPgo (não a porta FTP):
mscp -P 25557 ... # Use sua porta SFTP realPermissão negada
Verifique se seu nome de usuário e senha estão corretos. Você pode testar primeiro com um cliente SFTP padrão:
sftp -P 25557 username@sftpgo.yourserver.appboxes.coTransferências lentas
Tente ajustar o número de conexões paralelas:
mscp -P 25557 -n 16 ... # Aumente as conexões