2012-02-02 12 views
25

Stworzyłem zadanie Cron na moim serwerze internetowym, aby codziennie wykonywać kopie zapasowe bazy danych i chciałbym, aby ta data była dołączana do nazwy pliku.Cron Zadanie: Dołącz bieżącą datę do nazwy pliku przez Cron?

My Cron praca wygląda tak

mysqldump -u username -pPassword db_name > www/db_backup/db_backup+date%d%m%y.sql 

ale plik otrzymuję to: db_backup + data nie rozszerzenie pliku lub daty.

Próbowałem zostały również tę komendę

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_'date +%d%m%y'.sql 

ale nawet nie dać wyjście pliku.

Jaka jest prawidłowa składnia do uzyskania daty dołączonej do mojego pliku?

Szczera
- Mestika

Odpowiedz

23

Należy używać `` zamiast '' wokół polecenia, które chcesz wykonać, aby wygenerować aktualną datę dla pliku.

+1

można edytować odpowiedź czy ktoś zapewnić dokładniejsze przykład w komentarzach? –

40
* * * * * echo "hello" > /tmp/helloFile_$(date +\%Y\%m\%d\%H\%M\%S).txt 

Trzeba tylko uciec z nawiasów.

Inne formaty daty: http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

+2

Nie działa na CentOS .. – raven

+3

Praca na CentOS 6.6. */10 * * * */usr/bin/php -q /var/www/script.php> cron-job-log - $ (data + \% Y \% m \% d \% H \% M \% S) .txt – ursuleacv

+0

Odpowiedzi @ursuleacv działają zgodnie z oczekiwaniami. Oto moja przykładowa komenda cron: '08 10 * * * mysqldump -uYeBeSis_X2 -pPASWORDTHING dbName>/var/www/yebesis/mysqly/$ (data + \% Y _ \% m _ \% d _ \% I _ \% M _ \% p) _yebesis.sql' – caglaror

5

muszę utworzyć nowy plik dziennika za każdym razem komenda jest wykonywana. Więc każdy dzień powinien mieć dziennik jak ten /home/me/Logs/power_20151230.log Linia crontab że używam to:

00 8 * * * /home/me/power.py ON >> /home/me/Logs/power\_`date +20\%y\%m\%d` 

Uwaga znak podkreślenia musi być uciekł zbyt.

1

Musisz uciec format i używać ocena

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_`date +\%d\%m\%y`.sql