可变日期在linux cron中不起作用

Jas*_*son 5 linux cron

我遇到了一个问题,在进行广泛的谷歌搜索时找不到任何信息。

我有一个通过 crontab 运行的 linux cron,在我尝试将可变日期添加到文件标题之前,它运行良好。但是 .. 当我在 cron 之外运行相同的命令时,只是从命令行,它工作正常..此外,如果我取出日期部分,cron 确实可以工作。

有效的命令行代码:

sudo mysqldump -h mysql.url.com  -u user -pPassword intravet sites | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
Run Code Online (Sandbox Code Playgroud)

有效的 Cron:

15 2 * * * root mysqldump -h mysql.url.com -u user -pPassword intravet sites | gzip > /mnt/disk2/database.sql.gz
Run Code Online (Sandbox Code Playgroud)

不起作用的 Cron:

15 2 * * * root mysqldump -h mysql.url.com -u user -pPassword intravet sites | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我不能在 cron 中使用日期函数?我发现的一切都说我可以,但在实践中,我不能。

服务器详细信息:Ubuntu 12.04.5

感谢您的任何见解。

Sat*_*ish 10

你只需要使用转义%标志

* * * * * touch /tmp/foo_`date '+\%m-\%d-\%Y'`.txt
Run Code Online (Sandbox Code Playgroud)

结果:

[root@linux tmp]# ls -l /tmp/foo_*
-rw-r--r-- 1 root root 0 Apr 18 02:17 /tmp/foo_04-18-2015.txt
Run Code Online (Sandbox Code Playgroud)