NovoApelido
(usa Outra)
Enviado em 19/10/2011 - 17:56h
meus caros,
tenho um probleminha para resolver, e ficaria grato se alguém pudesse me ajudar.
Estou trabalhando em um script para backup e enfrento dois problemas.
1º- preciso copiar os arquivos para o backup, e usei este comando:
cp -rf $d_pesquisa $d_publico $d_adm $destino
mas não posso usá-lo pois o script de backup irá rodar todos os dias, e dessa forma ele copiaria sempre as mesmas coisas. Preciso copiar apenas o que ainda não foi copiado (copiar apenas o que é novo).
2º- como citei acima, copio tudo que está nas pastas "pesquisa", "publico" e "adm", e salvo as três pastas no backup em uma pasta nomeado por data. Ex: 2011-10-19
Preciso manter no backup apenas 7 pastas, ou seja, backup's de 7 dias. Quando eu for fazer o backup do 8º dia, preciso excluir a pasta mais antiga.
Se eu usar este comando:
dia=$(date +%Y-%m-%d -d "7 days ago")
rm -Rf /arquivos/rotinas/scripts/backup_hd/$dia
ele funciona, mas se eu não fizer o backup do 8º dia e fizer do 9º dia, ele irá excluir a 2ª pasta mais antiga e não a 1ª. Então usei este comando:
find /arquivos/rotinas/scripts/backup_hd/ -ctime +7 -exec rm -rf {} \;
mas ele não funcionou, e quando funciona também apaga meu arquivo ".sh" (que deve ficar no backup).
Acredito que uma solução, seria buscar por arquivos com nome de data, assim ele buscaria apenas as pastas e não o meu arquivo ".sh", mas não sei como faço isso.
Se alguém puder me ajudar em pelo menos um problema, ficarei muito agradecido.