
Lo estoy usando unison
para sincronizar datos con un servidor y recientemente creé un cronjob para esto. El cronjob se ejecuta al inicio y guarda el resultado en un archivo de registro. (información adicional a continuación).
El problema que tengo es que unison tiene bastantes resultados y solo me gustaría guardar el resumen en el archivo de registro. ¿Hay una manera de hacer eso? No he encontrado una manera de hacer que el unísono sea menos detallado, así que pensé que tal vez la salida se pueda filtrar de alguna manera; simplemente no sé cómo.
¡Gracias!
Información adicional:
En este momento, el archivo de registro termina luciendo así:
Contacting server...
Connected [//theserver//share/HDA_DATA/elrudi -> //thelaptop//home/elrudi]
Looking for changes
\ syncAll/Code/Aptana/T...avascript library code assist.txt
\ syncAll/Code/develope...nk/20070607 contacten (INDEX).xls
\ syncAll/Code/sourcefi...okexport/photos/10152112061815397
| syncAll/Code/Python/d...rawable-hdpi/ic_action_search.png
(... many many lines ...)
| syncAll/Work/2008_10 ...profile/StandardLastprofil_H0.xls
| syncAll/Work/2008_10 ...n/Load Profiles/Lastprofil_H0.xls
Waiting for changes from server
Reconciling changes
changed ----> syncAll/scriptfile1.sh
Propagating updates
UNISON 2.40.102 started propagating changes at 12:07:31.55 on 07 Oct 2015
[BGN] Updating file syncAll/scriptfile1.sh from /home/elrudi to //theserver//share/HDA_DATA/elrudi
100% 00:00 ETA
[END] Updating file syncAll/scriptfile1.sh
100% 00:00 ETA
UNISON 2.40.102 finished propagating changes at 12:07:31.61 on 07 Oct 2015
100% 00:00 ETA
Saving synchronizer state
Synchronization complete at 12:07:36 (1 item transferred, 0 skipped, 0 failed)
Me gustaría deshacerme de las líneas que comienzan con |
, /
, -
o \
(la barra giratoria que indica que un proceso aún no ha terminado).
Más información adicional:
crontab -e
espectáculos
@reboot /home/elrudi/sync.sh -batch 60 >> /home/elrudi/.cronjobs.log 2>&1
El sync.sh
script comprueba si se puede acceder al servidor de forma local o remota y ejecuta el unison
comando apropiado. El -batch
parámetro se agrega para ejecutar unison
sin la intervención del usuario y 60
es un tiempo de espera (para asegurarse de unison
que no se ejecute antes de que haya una conexión disponible).
Respuesta1
Cuando llame unison
a su sync.sh
script, llámelo de la siguiente manera:
unison ... 2>&1 | grep -vE '^[\|/-]|^$'
Esto eliminará ( -v
) todas las líneas que coincidan con la expresión regular: Todas las líneas que comiencen con uno de esos caracteres: \|/-
o completará las líneas vacías ( ^$
).
Editar: Si desea que se filtre el cronjob, utilice:
@reboot /path/to/sync.sh -batch 60 2>&1 | grep -vE '^[\|/-]|^$' >> /path/to/logfile