Aktuellen Zeitstempel in Dateiname einfügen?

2013
Louis B.

Ich muss viele DB-Sicherungen manuell erstellen mysqldump, zum Beispiel wie folgt:

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

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

0

1 Antwort auf die Frage

1
bertieb

Wie kann ich meine Dateinamen mit einem Datum versehen?

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

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

Die manSeite fürdate erläutert die anderen Optionen, die Sie verwenden können. In diesem Zusammenhang könnten Sie auch Zeit einbeziehen:

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

Warten Sie, was ist das 'Befehlsersetzung'?

Zitieren aus dem bash-Hackers-Wiki zur Befehlsersetzung :

Die Befehlssubstitution erweitert sich auf die Ausgabe von Befehlen. Diese Befehle werden in einer Subshell ausgeführt, und ihre stdoutDaten sind es, worauf die Substitutionssyntax erweitert wird.

Im Allgemeinen verwenden date -%Y%m%dAusgaben 20150917, und wir verwenden die backtick ( `) - Form der Befehlssubstitution, um diese Ausgabe in den Befehl aufzunehmen, den Sie zum Sichern Ihrer Datenbank angegeben haben. Wir hätten auch verwenden können:

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

dasselbe Ergebnis erzielen.