cronjob 中的 bash 脚本无法执行 /sbin/fake-hwclock

cronjob 中的 bash 脚本无法执行 /sbin/fake-hwclock

我已经编辑了我的 crontab定期执行脚本:

sudo crontab -e

它应该执行以下脚本,位于已安装的 USB 上,如下所示

* * * * * /mnt/usb0/fake-hwclock-cron.sh

然后脚本 (1)fake-hwclock-cron.sh运行脚本 (2)fake-hwclock以保存当前时间:

#!/bin/sh
echo "$(fake-hwclock save)"

脚本 (2) fake-hwclock(位于“/sbin/fake-hwclock”)然后将时间保存到fake-hwclock.data已安装 USB 上的文件 (3) 中。

USB 会自动安装,并带有以下选项:

PARTUUID=1c921a37-01 /mnt/usb0 ext4 defaults,auto,users,rw,nofail 0 0

文件权限:

(1) -rwxrwxrwx 1 pi   pi    /mnt/usb0/fake-hwclock-cron.sh
(2) -rwxr-xr-x 1 root root  /sbin/fake-hwclock
(3) -rwxrwxrwx 1 pi   pi    /mnt/usb0/fake-hwclock.data

如果我理解正确的话,对于文件(1)fake-hwclock-cron.sh和(3),fake-hwclock.data每个用户都可以读/写/执行。对于文件(2),fake-hwclock每个用户都可以读取/执行。

..但是暂时忽略这些权限不是吗计划任务,作为 sudo 执行,执行脚本 (1 fake-hwclock-cron.sh)权利也一样吗?

更令人困惑的是:我可以执行两个脚本 (1) / (2) 而无需shell 中的权限,但我无法执行它们作为 cron 作业的权利。


那么,谁能向我解释一下为什么我会得到一个“没有权限”错误?

/bin/sh: 1: /mnt/usb0/fake-hwclock-cron.sh: Permission denied


聚苯乙烯我希望我已经解释得足够好;否则请告诉我

答案1

根据它的输出,mount |grep usb0它显示挂载点是通过选项挂载的noexec,它将阻止您执行脚本,但您可以直接使用 shell 解释器执行它,如下所示:

* * * * * sh /path/to/script.sh

对于后来的错误fake-hwclock: not found,您需要提供完整的fake-hwclock命令。

查看更多关于不执行

相关内容