49

我在我的网络主机上创建了一个 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

4 回答 4

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

你只需要避开百分号。

其他日期格式: http ://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

于 2013-08-16T21:49:26.487 回答
31

您应该使用``而不是''围绕要执行的命令来生成文件名的当前日期。

于 2012-02-02T10:30:20.280 回答
10

您必须转义格式并使用评估

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_`date +\%d\%m\%y`.sql
于 2016-04-27T14:12:32.327 回答
7

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

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

注意下划线字符也必须转义。

于 2015-12-30T15:13:01.467 回答