我花了几天时间试图理解为什么以前在cron.d中运行的脚本不再起作用了。
在尝试了很多事情之后我感到很沮丧并将它们全部删除了。我想检查为什么cron不工作。我以pi身份登录。
我使用nano:
在cron.d目录中创建了一个文件* * * * * pi bash //home/pi/cron.sh
我检查了cron文件的权限:
pi@raspberrypi //etc $ namei -l //etc/cron.d/mycronjobpi
f: //etc/cron.d/mycronjobpi
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root cron.d
-rwxrwxrwx root root mycronjobpi
pi@raspberrypi //etc $
我检查了cron.sh文件的权限:
pi@raspberrypi //etc $ namei -l //home/pi/cron.sh
f: //home/pi/cron.sh
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x pi pi pi
-rwxrwxrwx pi root cron.sh
脚本是:
#!/bin/sh
date >> //home/pi/crondate.txt
bash在键入bash时运行脚本,否则不会,尽管尝试了不同的shebang。
pi@raspberrypi //home/pi $ bash cron.sh
pi@raspberrypi //home/pi $ cron.sh
bash: cron.sh: command not found
有关信息,
pi@raspberrypi //home/pi $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/user/bin
run-parts: executing //etc/cron.d/mycronjobpi
run-parts: failed to exec //etc/cron.d/mycronjobpi: Exec format error
run-parts: //etc/cron.d/mycronjobpi exited with return code 1
请解释为什么cron在重新启动后无效: sudo service cron restart。
可以看出,我相信文件权限是正常的,并且脚本在直接运行时可以正常工作。请帮忙。
我浪费了至少一天无处可去。 请帮忙。还请解释为什么在没有键入bash的情况下bash脚本无法运行。
获取信息
pi@raspberrypi //home/pi $ echo $SHELL
/bin/bash
pi@raspberrypi //home/pi $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/user/bin