Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Cronjob在运行时返回一个错误_Linux_Shell_Unix_Cron_Crontab - Fatal编程技术网

Linux 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

我的任务是从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: /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在实际尝试执行文件之前会更改用户。