Ich richte einen Cronjob ein, der eine MySQL-Datenbank auf meinem Server sichert, aber ich möchte nicht, dass dieselbe Datei immer wieder überschrieben wird. Stattdessen möchte ich eine Reihe von Sicherungen zur Auswahl haben, die automatisch durchgeführt werden. Beispielsweise:
## Cronjob, run May 21st, 2011:
mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql
## SAME Conjob, run May 28th, 2011:
mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sql
Und so weiter.
Kann ich das Systemdatum und / oder die Systemzeit als eine Art Variable in meinem Cronjob verwenden? Wenn nicht, was sind Ihre Vorschläge, um dasselbe zu erreichen?
date
Seien Sie vorsichtig mit Cron-Dateien: Einige Cron-Dateien (alle?) Werden%
als Ende des Befehls behandelt. (also das$()
war nicht das problem). Sie müssen alle Prozentzeichen... touch "/tmp/$(date +\%Y-\%m-\%d)"
DATE=$( date -I )
und mit dann${DATE}
später auf die Ergebnisse in eine wörtliche Verwendung$( date -I )
in der Befehlszeile des Auftrags.%
es auch auf OpenSuse 42 notwendig ist , von zu flüchten .Sie sollten verwenden können
date
.Typ
info date
oderman date
für Details.Folgendes könnte zu Ihnen passen (passen Sie das Datumsformat an Ihre Bedürfnisse an)
quelle
%
Zeichen in cron vermeiden.Siehe: http://www.ducea.com/2008/11/12/ using-the- character-in- crontab- entries/
quelle
Hier ist das Bash-Skript, das ich verwendet habe:
Dateien sehen aus wie:
Richten Sie den Cron-Job darauf, dass er nachts ausgeführt wird oder was auch immer Sie bevorzugen.
quelle
Schreiben Sie ein kleines Wrapper-Skript, das den
date
Befehl verwendet und Ihren Sicherungsbefehl aufruft.quelle