Como configurar a data para o backup semanal do cron?

2

Estou escrevendo um comando para cron fazer backups automáticos para 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.

Para o backup semanal , pensei em: date -d '1 week ago' +%Y%m%d e date -d 'monday week ago' +%Y%m%d

Mas fica complicado quando o meu laptop é desligado no horário agendado cron (segunda-feira depois). Vamos dizer que o anacron pegou 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 e date -d 'monday 2 week ago' +%Y%m%d está correto no caso em que o backup é feito pelo anacron, mas tem uma semana a mais caso) do cron.

Alguma idéia, como eu poderia tornar o tempo de backup compatível com o anacron?

    
por sumid 12.04.2012 / 19:03

1 resposta

2

Aqui está uma ideia: Toda vez que um backup é executado, o script de backup registra a data atual por touch ing de um arquivo. Na próxima vez que o backup for executado, ele usará o arquivo de registro de data e hora do backup anterior como o 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 opção tar -N pode ser uma data OU pode ser o nome do caminho de um arquivo cuja data de modificação de dados especifica a data.

    
por 12.04.2012 / 20:51