Não é necessário scp
, basta compactar o arquivo e gravá-lo no caminho remoto seria o suficiente.
tar cvzf - /path/to/myBase.sql | ssh USER@HOST "dd of=/path/to/backups/myBase$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"
O comando -
telling tar
para não criar o arquivo de saída, em vez disso, ele gravará as saídas no stdout. veja man tar .
Você também pode usar cat >/path/to/bsckups/...
em vez de dd
.
Mesmo você pode usar a opção rsync
with -z
, que compara o arquivo antes da transferência, mas ele será descompactado após a transferência no caminho remoto.
Ou você pode enviar diretamente para o caminho remoto se a compactação não for o problema.
mysqldump .... | ssh USER@HOST "dd ..."
Você também pode usar a opção -h
de mysqldump
como abaixo no servidor remoto (que é local agora) e fazer o dump do servidor local (que é o servidor remoto agora):
mysqldump -h HOSTNAME/IP ... > /path/in/local