我设法设置了一个 cronjob:
* 13 * * * date=`date +\%d-\%m-\%Y-\%s`; mysqldump -u root -pPassword1 db121 > /home/backup/xbackup_$date.sql; gzip /home/backup/xbackup_$date.sql
我希望上面的操作mysqldump
每天晚上 10 点执行一次,然后保存到 /home/backup 目录中。但是,这对我来说不起作用。
crontab 中的上述条目是否正确?如果正确,为什么它不进行备份,因为我自己执行命令时它工作正常。
感谢大家的帮助
更新
我正在读 centoscron 作业手册上面写着:
除以下用户外根可以使用 crontab 实用程序配置 cron 任务。
萨利,这不是真的吗?
答案1
从crontab(5)
手册页中:
The "sixth" field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline charac- ters, and all data after the first % will be sent to the command as standard input.
答案2
最有可能的是,这些命令不在您的$PATH
crontab 中,或者没有提供命令的完整路径,例如/usr/bin/mysqldump
答案3
我会这样做
date='date +\%d-\%m-\%Y-\%s'
0 22 * * * mysqldump -u root -pPassword1 db121 > /home/backup/xbackup_`$date`.sql; gzip /home/backup/xbackup_`$date`.sql