Eu faria o rsync
na outra máquina e depois executaria um comando scp
depois para colocar o arquivo de log gerado localmente no sistema remoto onde você gostaria que fosse mantido.
arquivo rsyncing + log
% rsync -avz -e 'ssh' $HOME/sample.sh remotemach:~ \
--log-file=$HOME/rsync.log ; scp $HOME/rsync.log remotemach:~
confirmando
% ls -l ~/rsync.log ~/sample.sh
-rwxrwxr-x 1 saml saml 10059 Oct 15 15:20 /home/saml/sample.sh
-rw-r--r-- 1 saml saml 192 Feb 2 14:57 /home/saml/rsync.log
% ssh remotemach "ls -l sample.sh rsync.log"
-rwxrwxr-x 1 saml saml 10059 Oct 15 15:20 sample.sh
-rw-r--r-- 1 saml saml 192 Feb 2 14:54 rsync.log
concatenando o log para o lado remoto
Se você quiser concatenar os resultados de rsync
para um arquivo remoto, você pode usar um comando composto ( veja a página man do bash ). Aqui estou envolvendo rsync
com parens e canalizando sua saída para ssh
através de um pipe, ou seja:
(rsync ...) | ssh ...
1º arquivo copiado
% (rsync -avz -e'ssh' $HOME/sample1.sh remotemach:~) \
| ssh remotemach "cat >> \$HOME/rsync.log"
confirmar a primeira cópia
% ssh remotemach "ls -l sample*.sh rsync.log"
-rw-r--r-- 1 saml saml 133 Feb 2 19:49 rsync.log
-rwxrwxr-x 1 saml saml 10059 Feb 2 19:25 sample1.sh
2º arquivo copiado
% (rsync -avz -e'ssh' $HOME/sample2.sh remotemach:~) \
| ssh remotemach "cat >> \$HOME/rsync.log"
confirma a segunda cópia
% ssh remotemach "ls -l sample*.sh rsync.log"
-rw-r--r-- 1 saml saml 266 Feb 2 20:03 rsync.log
-rwxrwxr-x 1 saml saml 10059 Feb 2 19:25 sample1.sh
-rwxrwxr-x 1 saml saml 10059 Feb 2 19:25 sample2.sh
NOTA: Preste especial atenção ao arquivo no lado direito do ssh
. Observe que o caminho $HOME
tem uma barra () na frente do $HOME
. Isso é de propósito. É necessário escapar do $HOME
para que o shell bash do host local não o expanda.