【问题标题】:Append current date to the filename via Cron?通过 Cron 将当前日期附加到文件名?
【发布时间】:2012-02-25 00:13:09
【问题描述】:

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

但这甚至没有给出文件输出。

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

【问题讨论】:

    标签: cron cron-task


    【解决方案1】:
    * * * * * echo "hello" > /tmp/helloFile_$(date +\%Y\%m\%d\%H\%M\%S).txt
    

    您只需要转义百分号。

    其他日期格式: 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-$(date +\%Y\%m\%d\%H\%M\ %S).txt
    • @ursuleacv 答案按预期工作。这是我的示例 cron 命令:08 10 * * * mysqldump -uYeBeSis_X2 -pPASWORDTHING dbName > /var/www/yebesis/mysqly/$(date +\%Y_\%m_\%d_\%I_\%M_\%p)_yebesis.sql
    • 我猜他的意思是“转义百分比”,因为括号没有被转义。在我转义百分比符号后,它在我的 cron 中起作用。
    • 自我说明:BSD的date不支持很方便的-I
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 不需要在\%y前面加上20。最好像这样使用大写的 Y:\%Y
      【解决方案4】:

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

      【讨论】:

      • 您能否编辑答案或有人在 cmets 中提供更准确的示例?
      • > proposed_file_name_`date + \%d\%m\%y`.sql
      猜你喜欢
      • 2013-07-18
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2022-11-14
      • 2021-12-18
      • 2010-12-20
      • 1970-01-01
      • 2010-11-22
      相关资源
      最近更新 更多