Cron任务:通过Cron将当前日期附加到文件名?

Mes*_*ika 33 cron cron-task

我在我的webhost上创建了一个Cron任务,每天备份我的数据库,我希望它将当前日期附加到文件名.

我的Cron工作看起来像这样

mysqldump -u username -pPassword db_name > www/db_backup/db_backup+date%d%m%y.sql
Run Code Online (Sandbox Code Playgroud)

但我得到的文件是这样的:db_backup + date没有文件扩展名或日期.

我也试过这个命令

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_'date +%d%m%y'.sql 
Run Code Online (Sandbox Code Playgroud)

但这甚至不提供文件输出.

将日期附加到我的文件的正确语法是什么?

真诚
- 梅斯蒂卡

eth*_*eff 59

* * * * * echo "hello" > /tmp/helloFile_$(date +\%Y\%m\%d\%H\%M\%S).txt
Run Code Online (Sandbox Code Playgroud)

你只需要逃避括号.

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

  • 使用CentOS 6.6.*/10****/usr/bin/php -q /var/www/script.php> cron-job-log - $(日期+ \%Y \%m \%d \%H \%M\%S)的.txt (4认同)
  • @ursuleacv 的答案按预期工作。这是我的示例 cron 命令: `08 10 * * * mysqldump -uYeBeSis_X2 -pPASWORDTHING dbName > /var/www/yebesis/mysqly/$(date +\%Y_\%m_\%d_\%I_\%M_\% p)_yebesis.sql` (2认同)
  • 我猜他的意思是“转义百分比”,因为括号没有转义。在我转义百分比符号后,它在我的 cron 中起作用。 (2认同)

小智 29

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

  • 您可以编辑答案还是有人可以在评论中提供更准确的示例? (3认同)

edi*_*son 5

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

00 8 * * * /home/me/power.py ON >> /home/me/Logs/power\_`date +20\%y\%m\%d`
Run Code Online (Sandbox Code Playgroud)

请注意,下划线字符也必须进行转义.

  • 不必在\%y前面加上20。最好像这样使用大写的Y:\%Y。 (2认同)

小智 5

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

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_`date +\%d\%m\%y`.sql
Run Code Online (Sandbox Code Playgroud)