Cronjob在运行时返回错误

时间:2012-05-18 06:19:43

标签: linux shell unix cron crontab

我的任务是从cron运行脚本,所以我为脚本编写了以下cronjob,并输出以下提到的错误消息。

cronjob

#BE housekeeper.sh
* * * * * /product/tools/housekeeper.sh -t BE > /tmp/fileset.out 2>&1

fileset.out包含错误消息。这是错误信息。

/bin/sh: /product/tools/housekeeper.sh: Permission denied

为什么说权限被拒绝。 user1可以按如下方式执行管家脚本

$sh housekeeper.sh -t BE

然后我检查了user1是否被允许运行cronjob。这张支票也通过了。允许user1运行crontab。那么在这种情况下可能出现的错误。

root      4181     1  0  2011 ?        00:00:00 crond
user1    7648  7564  0 06:18 pts/0    00:00:00 grep cron

我检查了应用程序的执行权限

$ls -ltr

-rw-r----- 1 user1 aapp 11732 May 17 08:55 housekeeper.sh

是否说这个应用程序是可执行的

提前感谢anyhelp

1 个答案:

答案 0 :(得分:2)

您需要将housekeeper.sh更改为755权限(可执行文件)

chmod 755 housekeeper.sh

运行sh housekeeper.sh/product/tools/housekeeper.shsh调用名为sh的可执行文件的方式略有不同,$PATH和Feed {{ 1}},因此您只需要housekeeper.sh的读取权限,但通过执行housekeeper.sh直接运行它将要求您具有执行权限(因此/product/tools/housekeeper.sh

修改

我看到您拥有755权限,这很简单-rw-r-----,让我解释一下

文件有3组权限,以3组3位表示。第一位表示读取权限,如输出中所示,您看到610,第二位是写权限r,第三位(未设置,w,可执行位)。你有3套,第一套为Owner,Group,然后是Other,因此你有9位

x

所以 111 111 111 VVV VVV VVV | | | Owner | | Group | Other 表示所有者具有读写位,组具有读取位,而其他人无权对该文件执行任何操作。

设置755会产生rw-r-----,我会留给你思考原因:D