Estoy escribiendo un comando para cron
realizar copias de seguridad automáticas de mi unidad flash.
Yo uso tar ... -N <some date>
para hacer la copia de seguridad.
La cuestión es cómo escribir el comando que me da la fecha correcta.
Paracopia de seguridad semanalYo pense acerca de:
date -d '1 week ago' +%Y%m%d
date -d 'monday week ago' +%Y%m%d
Pero se complica cuando mi computadora portátil se apaga a la hora programada por el cron (lunes después). Digamos que Anacron retoma el trabajo el martes. Con la primera variante me pierdo todos los cambios del lunes anterior. La segunda variante se pierde toda la semana anterior.
date -d 'monday 1 week ago' +%Y%m%d
es lo mismo que date -d 'monday week ago' +%Y%m%d
date -d 'monday 2 week ago' +%Y%m%d
es correcto en el caso en que la copia de seguridad se realiza mediante anacron, pero tiene una semana extra en (el caso normal) de cron.
¿Alguna idea, cómo podría hacer que el tiempo de respaldo sea compatible con Anacron?
Respuesta1
He aquí una idea: cada vez que se ejecuta una copia de seguridad, el script de copia de seguridad registra la fecha actual mediante touch
un archivo. La próxima vez que se ejecute la copia de seguridad, utilizará el archivo de marca de fecha de la copia de seguridad anterior como argumento para tar -N
. Por ejemplo, en un script de shell, la lógica podría verse así:
# Begin the latest backup run now.
touch /backups/new-backup-time
tar -N /backups/prev-backup-time -c ... ...
# Save the latest backup time for the next run.
mv /backups/new-backup-time /backups/prev-backup-time
Esto depende del hecho de que la tar -N
opción puede ser una fecha O puede ser el nombre de ruta de un archivo cuya hora de modificación de datos especifica la fecha.