Como copiar diretórios recursivamente com scp

Um problema comum ao trabalhar com arquivos é aplicar operações recursivamente ou a todos os subdiretórios da pasta inteira. O utilitário scp é usado para transferir arquivos e diretórios para servidores remotos e oferece suporte a operações recursivas.
Executando scp recursivamente
Embora às vezes seja mais rápido fazer grandes transferências em um único arquivo conhecido como tarball, na maioria das vezes a sobrecarga da transferência de arquivos individuais não importa.
Copiar recursivamente com scp é fácil: basta usar o sinalizador -r além de tudo o que você adicionou:
scp -r localpath usuário @ remoto: / remotepath
Observe que é -r explicitamente em minúsculas, ao contrário de muitos outros comandos que usam ou exigem -R.
Isso funcionará como um arrastar e soltar em / remotepath /, copiando o conteúdo de localpath / para o remoto e colocando-o em / remotepath / localpath /.
Publicidade
Se, em vez disso, quiser sincronizar localpath / e / remotepath /, você terá que transferir a pasta para a pasta pai de / remotepath /, o destino. Nesse caso, seria /, o diretório raiz.
Isso também seguirá links simbólicos no caminho local ao resolver arquivos, mas não criará necessariamente esses mesmos links no servidor remoto. Por exemplo, copiar um arquivo novo de e para / etc / nginx / sites-enabled não o colocará automaticamente em / etc / nginx / sites-available no remoto.
Usando rsync em vez
O Linux tem várias ferramentas para lidar com esse trabalho, e uma das melhores é o rsync, que faz tudo que o scp pode fazer, mas tem muito mais opções e é muito mais rápido para inicializar. Ele também não copia arquivos que não foram alterados, o que o torna uma ótima ferramenta para “ sincronizar ” dois diretórios um para o outro sem retransferir dados desnecessariamente.
rsync funciona basicamente da mesma forma que scp, com mais algumas opções incluídas para especificar as configurações:
rsync -a -essh localpath / user @ remote: / remotepath /
O sinalizador -a especifica o modo de arquivo, que ativa várias opções comumente usadas de uma só vez. O sinalizador -e ssh configura o rsync para transferência por SSH.
RELACIONADO: Como usar rsync para fazer backup de seus dados no Linux
Nenhum comentário