Il mio cronjob si presenta così:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Come posso rendere unico il nome del file ogni volta che cronjob scrive mysql_daily.dump?
Il mio cronjob si presenta così:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Come posso rendere unico il nome del file ogni volta che cronjob scrive mysql_daily.dump?
Risposte:
Per bash, forse:
... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump
Personalmente, in genere inserisco solo semplici comandi nel mio crontab
. Lo metterei in una piccola sceneggiatura e userei la sceneggiatura in crontab
. Ciò avrebbe il vantaggio di non richiedere la %
fuga dei personaggi (una trappola comune nel crontab).
l'aggiornamento lo ha reso ISO 8601 per il commento di @johan
cron
La pratica generale per questo è usare un timestamp usando date +%s
per generare qualcosa di utile per contrassegnare il file (ho usato i secondi come esempio ma puoi usare qualsiasi formato di data). Non è necessario disporre di un nome file univoco purché il nome file non sia in conflitto.
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump
Provare
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump
che inserirà la data corrente nel formato AAAAMMGG nel nome file.