Задача Cron: Добавить текущую дату к имени файла через Cron? - PullRequest
31 голосов
/ 02 февраля 2012

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

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

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

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

Я также пробовал эту команду

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

, но этодаже не выводит файл.

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

С искренним
- Местика

Ответы [ 4 ]

52 голосов
/ 17 августа 2013
* * * * * echo "hello" > /tmp/helloFile_$(date +\%Y\%m\%d\%H\%M\%S).txt

Тебе просто нужно избежать скобок.

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

29 голосов
/ 02 февраля 2012

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

5 голосов
/ 30 декабря 2015

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

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

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

3 голосов
/ 27 апреля 2016

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

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