cron 作业运行时出现权限被拒绝错误

cron 作业运行时出现权限被拒绝错误

一直试图运行 cron,但在我的/var/spool/mail/root

"/bin/sh: /disk1/archives/backup.website.cron: Permission denied"

这是我ls -hal的 cron 作业所在的目录

drwxr-xr-x 4 root root 4.0K Feb  6 04:22 .
drwxr-xr-x 6 root root 4.0K Feb  5 08:14 ..
-rwxr-xr-x 1 root root  105 Feb  6 04:22 backup
-rw-r--r-- 1 root root  102 Feb  5 08:34 backup.database.cron
-rw-r--r-- 1 root root   75 Feb  5 08:33 backup.website.cron
drwxr-xr-x 2 root root 4.0K Feb  5 08:35 databases

我已经backup设定chmod +x

备份文件如下所示

* * * * *  root /disk1/archives/backup.website.cron
30 * * * * root /disk1/archives/backup.database.cron

我运行了 cron

crontab /disk/1/archives/backup

我可以看到我的 cron 作业已设置为运行,因为当我这样做时, crontab -l我得到了

[root@web archives]# crontab -l
* * * * * /disk1/archives/backup.website.cron
30 * * * * /disk1/archives/backup.database.cron

backup.website.cron 看起来像

tar -zcvf /disk1/archives/websites/`date +%Y-%m-%d_%I:%M:%S%p`.tar.gz /web

而 backup.website.cron 看起来像

mysqldump --opt --all-databases | gzip > /disk1/archives/databases/`date +%Y-%m-%d_%I:%M:%S%p`.sql.gz

我是否遗漏了某处的权限更改?

我是否通过 crontab 运行了正确的脚本?

答案1

chmod +x /disk1/archives/backup.*.cron

您提供给命令的文件crontab不需要是可执行文件,因为它不是 shell 脚本。您作为 cron 作业调用的任何命令需可执行。

这里还有另一个奇怪之处。crontab 有两种略有不同的语法。一种有 5 个字段,指定何时执行命令,后面跟着命令本身;这是命令crontab所需的格式。另一种在 5 个时间字段和命令之间添加了一个用户名。这是/etc/crontab和目录下的文件使用的格式/etc/cron.*。(这是在 Ubuntu 11.04 上;在其他系统上组织可能略有不同。)

您说您使用 安装了backup文件crontab /disk/1/archives/backup,但backup您向我们展示的文件root在每一行都指定了用户。但您的crontab -l输出未显示root用户名。

您收到的错误消息与输出一致crontab -l(如果您提供的文件crontab有用root户名,它会尝试root作为命令执行)。我推测您提供的实际文件crontab没有root字段。

man 5 crontab有关普通 cron 文件和系统 cron 文件之间的差异的信息。

相关内容