Mein Cronjob sieht so aus:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Wie kann ich den Dateinamen für jedes Mal eindeutig machen, wenn cronjob mysql_daily.dump schreibt?
Mein Cronjob sieht so aus:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
Wie kann ich den Dateinamen für jedes Mal eindeutig machen, wenn cronjob mysql_daily.dump schreibt?
Antworten:
Für Bash vielleicht:
... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump
Persönlich habe ich in der Regel nur einfache Befehle in meine crontab
. Ich würde dies in ein kleines Skript einfügen und das Skript in der verwenden crontab
. Dies hätte den Vorteil, dass die %
Charaktere nicht entkommen müssen (eine häufige Gefahr für Crontab).
Update machte es ISO 8601 per @johan Kommentar
cron
Die allgemeine Praxis hierfür besteht darin, einen Zeitstempel zu verwenden date +%s
, um etwas Nützliches zum Markieren der Datei zu generieren (ich habe Sekunden als Beispiel verwendet, aber Sie können ein beliebiges Datumsformat verwenden). Es ist wirklich nicht notwendig, einen wirklich eindeutigen Dateinamen zu haben, solange der Dateiname nicht in Konflikt steht.
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump
Versuchen
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump
Dadurch wird das aktuelle Datum im Format JJJJMMTT in den Dateinamen eingefügt.