Comment ajouter un identifiant unique au nom de fichier dans le travail cron?


8

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?


2
Veuillez prendre le temps d'épeler correctement le titre. Cela rend la recherche beaucoup plus facile pour tout le monde.
Mikel

1
Vous avez écrit "Comment ajouter un identifiant uniqie au fichier nime dans un travail cron".
Mikel

Pourquoi n'utilisez-vous pas automysqlbackup?
stoeff

Réponses:


14

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


1
Vous pourriez modifier un peu la syntaxe et ce serait un format de date ISO 8601 parfait. [AAAA] [MM] [JJ] T [hh] [mm] [ss] Z, puisque vous utilisez la date -u pour UTC, vous pouvez ajouter un Z après la date;). en.wikipedia.org/wiki/…
Johan

3

La pratique générale consiste à utiliser un horodatage à l'aide de date +%spour 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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.