cytron
(usa Slackware)
Enviado em 20/06/2008 - 23:46h
Agora complicou, isso requer shell avançado.
Eu poderia dizer pra você fazer assim:
if [ $data == $data-7 ]; # Para semana passada
Mas tem um bug, usando aritimética para números normais ao fazer $data-32 ele não vai pegar o mês anterior, vai simplesmente subtrair 32 do número que existem em $data. Isso acontece porque neste modo não está trabalhando com "datas", existe uma maneira diferente para se trabalhar com datas, usando comandos próprios para isso.
Veja só:
data: 20080631 (2008/06/31)
20080631 + 1 (não é = 2008/07/01)
O resultado será 20080632 (2008/06/32)
Bugado, pois não existe mês com 32 dias.
Reveja seu script para não acontecer este bug em um determinado dia do backup.
Infelismente não sei trabalhar com datas no shell. Só em PHP, mas se shell estiver difícil pra você sugiro pegar PHP, pois além de executar via web ele também roda no terminal como shell. Ex.:
#!/bin/php
...
...
E pode manipular arquivos e diretórios tão bem quando um shell script. Além do mais, ele roda comandos. E o mais importante, trabalha muito bem com datas. Você pode ir mais além organizando informações em banco de dados, verificar o backup remotamente.