我在 /etc/cron.hourly 中有一个脚本:
-rwxr-xr-x 1 root root 85 Dec 6 19:05 /etc/cron.hourly/nvidia_to_exclusive
包含(末尾有一个空行):
#!/bin/bash
/usr/bin/nvidia-smi -c 1 > /home/user/nvidia-smi_set_exclusive.log
该脚本根本不由 cron 执行,即使使用run-parts /etc/cron.hourly
成功地执行它。
可能缺少什么?
答案1
问题是 cron 服务不活动。
当我在这里时,我将总结我发现的制作脚本的所有步骤/etc/cron.hourly/
:
- 检查脚本名称是否仅使用有效字符
run-parts
,即 [a-zA-Z0-9_-]。
所以不使用像.sh
. - 检查您的脚本是否可执行。
如果不 :chmod +x /etc/cron.hourly/yourScript
- 检查您的脚本是否在顶部包含 shebang(
#!/bin/bash
例如)。 - 检查您的脚本是否运行
run-parts
:
run-parts --test /etc/cron.hourly
→ 您的脚本应该被打印。
run-parts /etc/cron.hourly
→ 您的脚本应该被执行。
您可以在末尾检查/var/log/cron
脚本是否成功完成。 - 检查 cron 是否正在运行
service crond status
。
如果没有:service crond stop
那么service crond start
- 检查您的是否
/var/log/cron
包含错误BAD FILE MODE (/etc/cron.d/0hourly)
。
如果是这种情况,您可能需要执行chmod 0644 /etc/cron.d/0hourly
(cron 不喜欢这个文件是可执行的)。 - 检查 - 至少在 CentOS 7 上默认情况下 - 是否
/etc/cron.d/0hourly
存在并包含该行
01 * * * * root run-parts /etc/cron.hourly