Je suis en train de configurer un Cronjob qui sauvegardera une base de données MySQL présente sur mon serveur, mais je ne veux pas qu'elle continue à écraser le même fichier encore et encore. Au lieu de cela, je veux avoir un tableau de sauvegardes à choisir, fait automatiquement. Par exemple:
## 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
Etc.
Est-il possible d'utiliser la date et / ou l'heure système comme une sorte de variable dans mon Cronjob? Si non, quelles sont vos suggestions pour accomplir la même chose?
date
intérieur d'un fichier cronfile: certains crons (tous?) Sont considérés%
comme la fin de la commande. (donc ce$()
n'était pas le problème). Vous devez échapper à tous les signes de pourcentage:... touch "/tmp/$(date +\%Y-\%m-\%d)"
(plus agréable d'utiliser un format de date qui trie le lexicographe)DATE=$( date -I )
puis l'utilisation${DATE}
ultérieure entraîne l'utilisation d'un littéral$( date -I )
dans la ligne de commande du travail.%
soit également nécessaire sur OpenSuse 42.Vous devriez pouvoir utiliser
date
.Type
info date
ouman date
pour plus de détails.Quelque chose comme ce qui suit pourrait vous convenir (changez le format de la date selon vos besoins)
la source
%
caractères à l'intérieur de cron.Voir: http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
la source
Voici le script bash que j'ai utilisé:
Les fichiers ressemblent à:
Dirigez la tâche cron vers ceci pour qu'elle fonctionne la nuit ou comme vous préférez.
la source
Ecrivez un petit script qui utilise la
date
commande et appelle votre commande de sauvegarde.la source