Shell Script que crea un registro si el archivo no se envía al servidor remoto

Shell Script que crea un registro si el archivo no se envía al servidor remoto

Tengo este pequeño script que básicamente sincroniza archivos entre un servidor remoto. Se ha generado la clave ssh para la autenticación.

Sólo esto está presente en el guión.

rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved

Básicamente, lo que quiero crear es un método de registro para este script, no es sofisticado ni nada... solo esto... si se pierde la conexión y el archivo no se envía, aparece en mi registro que dice "Archivo no enviado, conexión no establecida". "

Además, si los archivos se enviaron, me muestra en los registros enviados correctamente.

o si el anfitrión o el usuario se equivoca, se muestra en mi registro.

Gracias y saludos, Sagar Mandal.

Respuesta1

Si desea registrar solo los intentos fallidos, puede obtener el valor de retorno de rsync consultando $?, que es el valor de retorno del último script. rsyncdevuelve 0 en caso de éxito y distinto de cero en diferentes errores (https://lxadm.com/Rsync_exit_codes). Yo lo haría de esa manera:

#!/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

Puede ponerlo en un scripty cuando lo ejecute, redirigir su salida a un archivo de registro como ese script >> log_file, o simplemente puede llamar al script y agregarlo >> log_filedespués de cada comando de eco en el script.

Si desea registrar también intentos exitosos, entonces puede hacerlo.

rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved &>> log_file

o

rsync --log-file=log_file /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved

También sugeriría aumentar la cantidad de información que produce rsync agregando -vo -vv. También es posible usar -vvvo incluso más, pero el manual dice que es para fines de depuración.

información relacionada