我已经编辑了我的根 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
命令。
查看更多关于不执行。