通过 Cron 将当前日期附加到文件名?
Posted
技术标签:
【中文标题】通过 Cron 将当前日期附加到文件名?【英文标题】:Append current date to the filename via 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
但这甚至没有给出文件输出。
将日期附加到我的文件的正确语法是什么??
【问题讨论】:
【参考方案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
以上是关于通过 Cron 将当前日期附加到文件名?的主要内容,如果未能解决你的问题,请参考以下文章
如何将当前日期时间作为字符串附加到 RouteConfig.cs 中的 URL