Guarde solo resultados específicos en el archivo de registro

Guarde solo resultados específicos en el archivo de registro

Lo estoy usando unisonpara 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 -eespectáculos

@reboot /home/elrudi/sync.sh -batch 60 >> /home/elrudi/.cronjobs.log 2>&1   

El sync.shscript comprueba si se puede acceder al servidor de forma local o remota y ejecuta el unisoncomando apropiado. El -batchparámetro se agrega para ejecutar unisonsin la intervención del usuario y 60es un tiempo de espera (para asegurarse de unisonque no se ejecute antes de que haya una conexión disponible).

Respuesta1

Cuando llame unisona su sync.shscript, 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

información relacionada