Aktuellen Zeitstempel im Dateinamen einschließen?

Aktuellen Zeitstempel im Dateinamen einschließen?

Ich muss viele DB-Backups manuell erstellen mysqldump, zum Beispiel so:

mysqldump -uroot -proot my-db > my-db.sql

Ich frage mich, ob es eine einfache Möglichkeit gibt, das aktuelle Datum oder den Zeitstempel in den Dateinamen aufzunehmen, sodass die Datei folgendermaßen aussieht: my-db-20150917.sql(oder ein anderes Format ist auch in Ordnung, sogar ein Zeitstempel).

Antwort1

Wie kann ich meine Dateinamen mit einem Datumsstempel versehen?

Um die aktuelle Uhrzeit/das aktuelle Datum in einen Dateinamen aufzunehmen, verwenden Sie eine Kombination aus date, und Befehlsersetzung:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d`.sql

DermanSeite fürdateerklärt die anderen Optionen, die Sie verwenden können. In diesem Kontext könnte aber auch die Angabe der Zeit für Sie von Interesse sein:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d-%H%M`.sql

Moment, was ist diese „Befehlsersetzung“?

Zitat aus demBash-Hacker-Wiki zur Befehlsersetzung:

Die Befehlsersetzung wird zur Ausgabe von Befehlen erweitert. Diese Befehle werden in einer Subshell ausgeführt und ihre stdoutDaten werden durch die Ersetzungssyntax erweitert.

Im Grunde genommen date -%Y%m%dwerden Ausgaben ausgegeben 20150917, und wir verwenden die Backtick- `Form () der Befehlsersetzung, um diese Ausgabe in den Befehl einzuschließen, den Sie zum Sichern Ihrer Datenbank angegeben haben. Wir hätten genauso gut Folgendes verwenden können:

mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql

um das gleiche Ergebnis zu erzielen.

verwandte Informationen