¿Cómo configurar la fecha para la copia de seguridad semanal cron?

¿Cómo configurar la fecha para la copia de seguridad semanal cron?

Estoy escribiendo un comando para cronrealizar 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%des lo mismo que date -d 'monday week ago' +%Y%m%d
date -d 'monday 2 week ago' +%Y%m%des 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 touchun 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 -Nopció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.

información relacionada