/etc/cron.hourly/ 中的脚本从未运行

Adr*_* B. 6 cron centos

我在 /etc/cron.hourly 有一个脚本:

-rwxr-xr-x 1 root root 85 Dec  6 19:05 /etc/cron.hourly/nvidia_to_exclusive
Run Code Online (Sandbox Code Playgroud)

包含(末尾有一个空行):

#!/bin/bash 

/usr/bin/nvidia-smi -c 1 > /home/user/nvidia-smi_set_exclusive.log
Run Code Online (Sandbox Code Playgroud)

该脚本根本不会由 cron 执行,即使使用run-parts /etc/cron.hourly成功执行它。

可能缺少什么?

Adr*_* B. 17

问题是 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