Come aggiungere un ID univoco al nome del file nel cron job?


8

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?


2
Prenditi il ​​tempo necessario per scrivere correttamente il titolo. Rende la ricerca molto più semplice per tutti.
Mikel,

1
Hai scritto "Come aggiungere l'id uniqie al file nime nel cron job".
Mikel,

Perché non usi automysqlbackup?
Stoeff,

Risposte:


14

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


1
Potresti modificare la sintassi solo un po 'e sarebbe perfetto formato data ISO 8601. [AAAA] [MM] [GG] T [hh] [mm] [ss] Z, poiché si utilizza la data -u per UTC è possibile aggiungere una Z dopo la data;). en.wikipedia.org/wiki/…
Johan

3

La pratica generale per questo è usare un timestamp usando date +%sper 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.