首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cron显示“错误在crontab文件中,无法安装”

Cron显示“错误在crontab文件中,无法安装”
EN

Stack Overflow用户
提问于 2013-02-08 08:24:40
回答 3查看 27.3K关注 0票数 3

我正在尝试执行以下一系列命令来创建MySQL数据库的备份。

当我尝试使用crontab -e将命令添加到我的crontab时,我收到错误消息“错误在crontab文件中,无法安装”,并询问我是否要重试。

代码语言:javascript
复制
mkdir /home/mysql-backup/`date '+%m-%d-%Y'`; mysql -s -r -e 'show databases' | while read db; do mysqldump $db -r /home/mysql-backup/`date '+%m-%d-%Y'`/${db}.sql; done; rm -r -f `date --date="1 week ago" +%m-%d-%Y`; du -k |sort -n > output; mail -s "MySQL Backups" "steven@brightbear.net" < output

此文件中是否有我应该更改的内容?或者我应该考虑创建一个脚本文件并从cron调用它。

提前感谢您所能提供的任何帮助。

EN

回答 3

Stack Overflow用户

发布于 2013-02-08 08:40:44

如果你把这个脚本给了crontab -e,它当然不会同意。crontab文件中的一行应该以5个字段开头,指示您希望脚本运行的时间,作为can be read in crontab's manpage

另一方面,现在大多数Linux发行版都预置了每小时执行一次(/ etc /cron.hourly)、每天执行一次(/etc/cron.daily)等的功能。只需将脚本放在适当目录下的文件中,它就会在选定的时间栅格中执行,这样就容易多了。一个额外的优点是,在这些文件中,您不会被迫将所有内容都塞到一行中。

票数 6
EN

Stack Overflow用户

发布于 2013-02-08 08:40:01

是的,就风格而言,我鼓励将SQL命令放到shell脚本中,然后从cron.  运行shell脚本(并且,正如新指出的,如果命令序列被分成多行并带有注释,则更容易维护/调试。)但是--这就是您输入到crontab中的所有内容吗?请查看man crontab,并添加指定命令运行时间的字段。

票数 0
EN

Stack Overflow用户

发布于 2013-02-08 08:51:34

crontab(5)手册页上看,百分号(%)似乎有特殊的含义,所以这可能就是您遇到麻烦的地方。

是的,您应该将命令放入一个单独的shell脚本中,然后从crontab行调用它。这还将使读取crontab文件变得更加容易,并且您可以很好地格式化脚本,使其更易于维护。您可以通过这种方式从crontab中单独测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14763687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档