Estou configurando um Cronjob que fará backup do banco de dados MySQL que eu tenho no meu servidor, mas não quero que ele sobrescreva o mesmo arquivo repetidamente. Em vez disso, quero ter uma variedade de backups para escolher, feitos automaticamente. Por exemplo:
## Cronjob, run May 21st, 2011:
mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql
## SAME Conjob, run May 28th, 2011:
mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sql
E assim por diante.
Existe alguma maneira de usar a data e / ou hora do sistema como algum tipo de variável no meu Cronjob? Caso contrário, quais são suas sugestões para realizar o mesmo?
date
dentro de um cronfile: alguns crons (todos?) Tratam%
como o fim do comando. (então$()
o problema não era esse). Você tem que escapar de todas sinais de porcentagem:... touch "/tmp/$(date +\%Y-\%m-\%d)"
(mais agradável de usar um formato de data que tipos lexicographically)DATE=$( date -I )
uso${DATE}
posterior resulta no uso de um literal$( date -I )
na linha de comando do trabalho.%
é necessário escapar do OpenSuse 42.Você deve poder usar
date
.Digite
info date
ouman date
para obter detalhes.Algo como o seguinte pode ser adequado para você (altere o formato da data de acordo com suas necessidades)
fonte
%
caracteres dentro do cron.Veja: http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
fonte
Aqui está o script bash que eu usei:
Os arquivos são parecidos com:
Aponte o trabalho cron para que ele seja executado todas as noites ou o que você preferir.
fonte
Escreva um pequeno script de wrapper que utilize o
date
comando e chame seu comando de backup.fonte