为什么 cron 作业没有在 ubuntu 12.04 上启动?

为什么 cron 作业没有在 ubuntu 12.04 上启动?

这是 $HOME/ 下的脚本 sqlite_backup.sh:

#! /bin/bash
now=$(date +%d)
echo "Welcome to Sqlite backup script"
sqlite3 /var/www/db/nbhydb.sqlite3 << EOF
.timeout 20000
.backup $HOME/nbhydb_backup_$now.sqlite3
EOF
echo "End of the script"

脚本通过输入进行测试$HOME/sqlite_backup.sh,并且在 $HOME 下创建了一个备份文件。这是 cron 作业(crontab -e):

# m h  dom mon dow   command
5 * * * * $HOME/sqlite_backup.sh

这是 /var/log/syslog 下的 cron 日志:

Feb  3 13:05:01 ibm-testbox CRON[8961]: (root) CMD ($HOME/sqlite_backup.sh)

该命令计划在每小时的第 5 分钟运行。但是 cron 作业没有生成备份文件。我们错过了什么?谢谢。

更新:

修改cron job以保存执行错误:

5 * * * * $HOME/sqlite_backup.sh > $HOME/backup.log 2>&1

执行之后日志为:

Welcome to Sqlite backup script
End of the script

日志中没有任何错误。但是仍然找不到 nbhydb_3_backup.sqlite3。

答案1

问题是$HOME脚本中未定义变量。将 HOME 替换为绝对路径后,脚本可以正常工作。

相关内容