Eu tenho este pequeno script que basicamente faz o rsync de arquivos entre o servidor remoto. A chave ssh foi gerada para autenticação.
só isso está presente no script
rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved
basicamente o que eu quero criar é um método de log para esse script que não é chique nem nada... só isso... se a conexão for perdida e o arquivo não for enviado ele vem no meu log dizendo "Arquivo não enviado conexão não estabelecida "
também se os arquivos foram enviados, ele me mostra nos logs enviados com sucesso.
ou se o host ou o usuário estiver errado, ele aparecerá no meu log.
Obrigado e cumprimentos, Sagar Mandal
Responder1
Se quiser registrar apenas tentativas malsucedidas, você pode obter o valor de retorno do rsync examinando $?
, que é o valor de retorno do último script. rsync
retorna 0 em caso de sucesso e diferente de zero em erros diferentes (https://lxadm.com/Rsync_exit_codes). Eu faria dessa maneira:
#!/bin/bash
ret_text=$({rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved} 2>&1)
if [ $? -ne 0 ]; then
echo rsync error code $? on $(date)
echo rsync output follows
echo $ret_text
fi
Você pode colocar isso em a script
e, ao executá-lo, redirecionar sua saída para um arquivo de log como esse script >> log_file
, ou pode simplesmente chamar o script e adicionar >> log_file
após cada comando echo no script.
Se você quiser registrar também tentativas bem-sucedidas, faça isso
rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved &>> log_file
ou
rsync --log-file=log_file /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved
Eu também sugeriria aumentar a quantidade de informações que o rsync produz adicionando -v
ou -vv
. Também é possível usar -vvv
ou até mais, mas o manual diz que é para fins de depuração.