2016-04-05 8 views
1

Verwenden von Cron, um mysql täglich in einem Ordner zu sichern. Also versucht Cron mit unter Code in Linux Server zu planen. related postCron-Dateiname mit Datum wird übergeben Y_m_d nicht aktuelles Datum

0 0 * * * <username> mysqldump -u<mysql username> -p<mysql password> <database name> > /home/<username>/Db_BackUp/expense_$(date +"\℅Y_\℅m_\℅d").sql 

über cron funktioniert, aber erzeugte Dateiname ist wie

expense_\.Y_\.m_\.d.sql 

ich cron erstellen müssen Dateinamen als expense_2016_04_05.sql

, wie dies in cron zu tun?

related answer from SO Post

zusätzlich Informationen über cron Neustart SO Post

Antwort

1

Da cron ist kein Shell, es führt keine Artikel in $() Wrapper innerhalb der cron Linie in der Art und Weise eine Schale tut. Jedoch sind einige crons wie Vixie Cron können Sie Variablen, bevor Sie Ihren Befehl definieren:

YMD=/bin/date +%Y_%m_%d 
0 0 * * * /path/to/command > /home/username/Db_BackUp/expense_$($YMD).sql 

Wenn das nicht funktioniert, könnten Sie einen Helfer-Skript schreiben müssen und es über cron statt laufen. Zum Beispiel:

mysqldump_helper.sh

#!/bin/bash 
YMD=`/bin/date +%Y_%m_%d` 
/path/to/command > /home/username/Db_BackUp/expense_$YMD.sql 

crontab

* * * * * /path/to/mysqldump_helper.sh 
+0

, aber ich bin mit 'crontab' von' RHEL7'. Glaubst du, dass es funktioniert? –

+0

Sie müssen es nur versuchen. RHEL7 kann "cronie" verwenden, was die gleiche Variablenzuweisung zulässt, die die erste Lösung oben zeigt. In jedem Fall wird die zweite Lösung jedoch mit jedem Cron-Programm funktionieren. –

+0

Danke! @David White trotzdem habe ich Shell Script geschrieben und es funktioniert super –