2012-02-02 50 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

可以编辑答案或有人提供意见更准确的例子吗? – 2018-01-18 05:36:59

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 2014-11-24 07:09:39

+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 2015-04-01 16:47:19

+0

@ursuleacv答案按预期工作。这是我的示例cron命令:'08 10 * * * mysqldump -uYeBeSis_X2 -pPASWORDTHING dbName>/var/www/yebesis/mysqly/$(date + \%Y _ \%m _ \%d _ \%I _ \%M _ \% p)_yebesis.sql' – caglaror 2017-11-21 08:13:42

5

我需要创建每次执行命令新的日志文件。所以我每天应该有一个日志这样/home/me/Logs/power_20151230.logcrontab行,我用的是这个:

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