Mon cronjob ressemble à ceci:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Comment puis-je rendre le nom de fichier unique à chaque fois que cronjob écrit mysql_daily.dump?
Mon cronjob ressemble à ceci:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Comment puis-je rendre le nom de fichier unique à chaque fois que cronjob écrit mysql_daily.dump?
Réponses:
Pour bash, peut-être:
... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump
Personnellement, je ne mets généralement que des commandes simples dans mon crontab
. Je mettrais cela dans un petit script et utiliserais le script dans le crontab
. Cela aurait l'avantage de ne pas obliger les %
personnages à s'échapper (un piège commun de crontab).
mise à jour en ISO 8601 par commentaire @johan
cron
La pratique générale consiste à utiliser un horodatage à l'aide de date +%s
pour générer quelque chose d'utile pour marquer le fichier (j'ai utilisé les secondes comme exemple mais vous pouvez utiliser n'importe quel format de date). Il n'est vraiment pas nécessaire d'avoir un nom de fichier vraiment unique tant que le nom de fichier n'est pas en conflit.
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump
Essayer
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump
qui mettra la date actuelle au format AAAAMMJJ dans le nom de fichier.