以 root 身份执行 Cronjob?

以 root 身份执行 Cronjob?

我在使用 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 进行比较。

差别很大,会导致看不见的问题

相关内容