我的任务是从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
答案 0 :(得分:2)
您需要将housekeeper.sh
更改为755
权限(可执行文件)
chmod 755 housekeeper.sh
运行sh housekeeper.sh
和/product/tools/housekeeper.sh
与sh
调用名为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