Como configurar a data para backup semanal do cron?

Como configurar a data para backup semanal do cron?

Estou escrevendo um comando para cronfazer backups automáticos do meu flashdrive.
Eu uso tar ... -N <some date>para fazer o backup.
A questão é como escrever o comando que me dá a data certa.

Parabackup semanalEu pensei sobre:
date -d '1 week ago' +%Y%m%d
date -d 'monday week ago' +%Y%m%d

Mas fica complicado quando meu laptop é desligado no horário agendado do cron (segunda-feira depois). Digamos que o Anacron comece o trabalho na terça-feira. Com a primeira variante sinto falta de todas as alterações da segunda-feira anterior. A segunda variante perde toda a semana anterior.
date -d 'monday 1 week ago' +%Y%m%dé o mesmo que date -d 'monday week ago' +%Y%m%d
date -d 'monday 2 week ago' +%Y%m%do correto no caso em que o backup é feito pelo anacron, mas tem uma semana extra no (caso normal) do cron.

Alguma ideia, como posso tornar o tempo de backup compatível com o anacron?

Responder1

Aqui está uma ideia: toda vez que um backup é executado, o script de backup registra a data atual enviando touchum arquivo. Na próxima vez que o backup for executado, ele usará o arquivo de carimbo de data do backup anterior como argumento para tar -N. Por exemplo, em um script de shell, a lógica poderia ser assim:

# 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

Isso depende do fato de que a tar -Nopção pode ser uma data OU pode ser o nome do caminho de um arquivo cujo horário de modificação de dados especifica a data.

informação relacionada