Linux Cronjob在运行时返回一个错误
我的任务是从cron运行一个脚本,因此我为该脚本编写了以下cronjob,它输出了下面提到的错误消息Linux Cronjob在运行时返回一个错误,linux,shell,unix,cron,crontab,Linux,Shell,Unix,Cron,Crontab,我的任务是从cron运行一个脚本,因此我为该脚本编写了以下cronjob,它输出了下面提到的错误消息 /bin/sh: /product/tools/housekeeper.sh: Permission denied 克朗乔 #BE housekeeper.sh * * * * * /product/tools/housekeeper.sh -t BE > /tmp/fileset.out 2>&1 fileset.out包含错误消息。这是错误消息 /bin/sh: /p
/bin/sh: /product/tools/housekeeper.sh: Permission denied
克朗乔
#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
它说这个应用程序是可执行的吗
chmod 755 housekeeper.sh
提前感谢您提供的帮助您需要更改
house keeper.sh
以获得755
权限(可执行)
运行sh house keeper.sh
和/product/tools/house keeper.sh
与运行sh
调用$PATH
中名为sh
的可执行文件并将house keeper.sh
输入其中的方式略有不同,因此您只需要获得house keeper.sh
的读取权限即可,但是通过执行/product/tools/houseceper.sh直接运行它需要您具有执行权限(因此755
)
编辑
我知道你有-rw-r-----
权限,那很简单610
,让我解释一下
一个文件有3组权限,以3组3位表示。第一位表示读取权限,正如在输出中一样,您可以看到r
,第二位是写入权限w
,第三位(未设置,是x
,可执行位)。你有3组,第一组是所有者,组,然后是其他,因此你有9位
111 111 111
VVV VVV VVV
| | |
Owner | |
Group |
Other
因此,rw-r-----
表示所有者有读写位,组有读位,而其他人无权对此文件执行任何操作
设置755将产生rwxr-xr-x
,我将留给您思考原因:D我在键入ls-ltr for house keeper.sh后未注明问题日期。我无法翻译输出以检查它是否具有可执行权限。你能帮我一下吗?顺便说一句:IMHO 0700(甚至可能0100(…)就足够了。Cron在实际尝试执行文件之前会更改用户。