bash: envia o status do rsync usando o comando notify-send

0

Estou usando rsync para enviar algumas alterações para um servidor, para isso fiz um script bash e quero mostrar uma notificação de status na área de trabalho (estou usando o Linux Mint 18 Cinnamon)

É possível enviar a saída de rsync para notify-send para que eu possa ver a quantidade de dados sincronizados? Aqui está o meu script real:

notify-send "sincronizando esteticas"
rsync -tprvkku --exclude "00_docs" --exclude "temp" --exclude "config.php" --progress public_html/ rsync://myserver:/myfiles 
notify-send "sincronizacion terminada"
    
por Chico3001 17.10.2016 / 05:23

1 resposta

1

Se você quiser um pop-up de notificação com a linha de resumo final, algo como

sent 6,673,231 bytes  received 17,718 bytes  13,381,898.00 bytes/sec
total size is 6,613,892  speedup is 0.99

então você pode capturar a saída do rsync em um arquivo e usar as últimas 2 linhas do arquivo:

rsync ... | tee /tmp/out
notify-send "$(tail -2 /tmp/out)"

Se você quiser um resumo mais detalhado, adicione --info=stats2

rsync --info=stats2 ... | tee /tmp/out
notify-send "$(tail -16 /tmp/out)"

Isso fornecerá informações adicionais, como:

Number of files: 932 (reg: 929, dir: 2, link: 1)
Number of created files: 932 (reg: 929, dir: 2, link: 1)
Number of deleted files: 0
Number of regular files transferred: 929
Total file size: 6,613,892 bytes
Total transferred file size: 6,613,888 bytes
Literal data: 6,613,888 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 6,673,231
Total bytes received: 17,686
    
por 18.10.2016 / 19:27