Crontab / 作业失败(由于 + 号?)

Crontab / 作业失败(由于 + 号?)

我正在尝试使用以下 cron 作业自动执行夜间备份(当然,IP 和密码已被删除):

[root@katexic ktxc]# crontab -l
30 3 * * * /bin/tar -czf /backup/ktxc/ktxc-`date '+%m%d%y'`.tar.gz /var/www/ktxc.to;scp -i /root/.ssh/id_rsa /backup/ktxc/ktxc-`date '+%m%d%y'`.tar.gz [email protected]:/home/backup/backups
45 3 * * * /bin/tar -czf /backup/katexic/katexic-`date '+%m%d%y'`.tar.gz /var/www/katexic.com;scp -i /root/.ssh/id_rsa /backup/katexic/katexic-`date '+%m%d%y'`.tar.gz [email protected]:/home/backup/backups
00 4 * * * /usr/bin/mysqldump -u ktxc_yourls -pxxxpasswordxxx ktxc_yourls | gzip > /backup/ktxc/ktxc-mysql-`date +\%m\%d\%y`.sql.gz;scp -i /root/.ssh/id_rsa /backup/ktxc/ktxc-mysql-`date '+%m%d%y'`.sql.gz [email protected]:/home/backup/backups

这些在命令行中运行良好,但在 cron 守护程序尝试运行它们时则不行。在/var/log/cron我看到如下消息:

Jun 10 03:30:01 katexic CROND[7437]: (root) CMD (/bin/tar -czf /backup/ktxc/ktxc-`date '+)
Jun 10 03:45:01 katexic CROND[7445]: (root) CMD (/bin/tar -czf /backup/katexic/katexic-`date '+)

我认为我的命令中的符号有问题+?我该如何修复它们,以便它们作为 cron 作业正常运行?

故障排除无法解决这个问题为什么我的 crontab 不工作?我该如何排除故障?因为据我所知,这不包括特殊字符等,并且日志中的错误与 cron 发送到我的电子邮件的错误相同。

答案1

您需要使用反斜杠转义特殊字符,因此请尝试使用 + 和 \%。以及其他特殊字符(如果有)。另一个选项是将这些长命令放在简单的 shell 脚本中,为这些脚本添加可执行权限位,然后在 crontab 中引用它们。

相关内容