2012-02-02 2 views
25

Я создал задачу Cron на своем веб-хосте для ежедневной резервной копии моей базы данных, и я бы хотел, чтобы она добавила текущую дату к имени файла.Задача Cron: добавить текущую дату к имени файла через Cron?

Моя Cron работа выглядит следующим образом

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

Но файл я получаю это: db_backup + дата без расширения файла или дату.

Я также попытался эту команду

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

но даже не дает выходной файл.

Каков правильный синтаксис для получения даты, добавленной в мой файл?

Искренняя
- Mestika

ответ

23

Вы должны использовать `` вместо '' вокруг команды, которую вы хотите выполнить, чтобы создать текущую дату вашего файла.

+1

вы могли бы изменить ответ или кто-то обеспечить более точный пример в комментариях? –

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

Вам просто нужно избежать круглых скобок.

Другие форматы даты: http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

+2

Не работает на CentOS .. – raven

+3

Работает на CentOS 6.6. */10 * * * */usr/bin/php -q /var/www/script.php> cron-job-log - $ (date + \% Y \% m \% d \% H \% M \% S) .txt – ursuleacv

+0

Ответы @ursuleacv работают, как ожидалось. Вот моя команда cron: '08 10 * * * mysqldump -uYeBeSis_X2 -pPASWORDTHING dbName>/var/www/yebesis/mysqly/$ (date + \% Y _ \% m _ \% d _ \% I _ \% M _ \% р) _yebesis.sql' – caglaror

5

Мне нужно создать новый файл журнала каждую команду времени выполняется. Поэтому каждый день я должен иметь журнал, как этот /home/me/Logs/power_20151230.log The crontab линии, что я использую это:

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

Примечание символ подчеркивания должны быть экранированы тоже.

1

Вы должны бежать формат и использовать оценки

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_`date +\%d\%m\%y`.sql 
Смежные вопросы