我在使用 cronjobs 备份时遇到了一些问题。
sudo crontab -e
我已在(非个人帐户)中设置了以下内容:
0 1 * * * /backups/dobackup
/backups/dobackup
包含这个:
#!/bin/sh
touch ITRAN
tar -cvpjf /backups/$(date +%d.%m.%Y)_backup.tar.bz2 --exclude=/backups --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev /
备份文件已创建,但文件 ITRAN 未创建。此外,备份文件比预期小得多:
-rw-r--r-- 1 rjrudman root 371620259 2012-06-21 12:39 21.06.2012_backup.tar.bz2
-rw-r--r-- 1 rjrudman root 1023211449 2012-06-22 18:00 22.06.2012_backup.tar.bz2
-rw-r--r-- 1 rjrudman root 1512785 2012-06-23 01:00 23.06.2012_backup.tar.bz2
-rw-r--r-- 1 rjrudman root 1023272455 2012-06-24 22:41 24.06.2012_backup.tar.bz2
-rw-r--r-- 1 rjrudman root 1514027 2012-06-25 01:00 25.06.2012_backup.tar.bz2
通过手动运行可以创建文件大小更大的备份sudo /backups/dobackup
。似乎 cronjob 在某个时候失败了……但我不知道如何调试此问题或从哪里开始。
有什么想法吗?运行 ubuntu 10.04
答案1
如果您想找出失败的原因,请尝试记录备份脚本的输出:
0 1 * * * /backups/dobackup >& /root/dobackup.log
答案2
Crontab 环境和 bash 终端环境不一样,需要单独为 crontab 编写命令。
答案3
我学到的一件事就是弄清楚 cron 环境可以访问什么。
这可能不是一个解决方案,但它可以让您在将来意识到这个问题。
让 cron 执行此命令:
* * * * * set > /temp/text/file
看一下它并将其与普通的 bash shell 进行比较。
差别很大,会导致看不见的问题