备份数据库使用带有日期功能的crontab
我可以使用这个命令
mysqldump -u"root" myDB| gzip > mydb_`date +%d-%m-%Y`.sql.gz
,但是当在 ubuntu 上的 crontab 中运行时
* * * * * mysqldump -u"root" myDB| gzip > mydb_`date +%d-%m-%Y`.sql.gz
(这个错误是由函数日期引起的,当我删除它时,crontab 运行良好)
,它会在日志文件中发生这个错误。
ubuntu CRON[xxxx] (user) CMD(mysqldump -u"root" myDB| gzip > mydb_`date+)
ubuntu CRON[xxxx] (CRON) error ( grandchild #5353 failed with exit status 2)
ubuntu CRON[xxxx] (CRON) info (no MTA installed, discarding output)
I can use this command
mysqldump -u"root" myDB| gzip > mydb_`date +%d-%m-%Y`.sql.gz
but when run in crontab
* * * * * mysqldump -u"root" myDB| gzip > mydb_`date +%d-%m-%Y`.sql.gz
( this error cause by function date, when i remove it , crontab run good )
on ubuntu, it happen this error in log file.
ubuntu CRON[xxxx] (user) CMD(mysqldump -u"root" myDB| gzip > mydb_`date+)
ubuntu CRON[xxxx] (CRON) error ( grandchild #5353 failed with exit status 2)
ubuntu CRON[xxxx] (CRON) info (no MTA installed, discarding output)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
crontab 命令中的
%
符号将转换为换行符,并且第一个%
之后的所有数据都将发送到命令的 stdin。将每个%
替换为\%
。(你只有 4 个时间字段:
* * * *
;你需要 5 个(你后来解决了这个问题)。)%
signs in a crontab command are converted to newlines, and all data after the first%
is sent to the command's stdin. Replace each%
with\%
.(And you only had 4 time fields:
* * * *
; you need 5 (you later fixed the question).)来自
man 5 crontab
:From the
man 5 crontab
: