web-dev-qa-db-ja.com

/etc/cron.hourly/のスクリプトは実行されません

/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

run-parts /etc/cron.hourlyを正常に使用した場合スクリプトを実行しても、スクリプトはcronによってまったく実行されません。

何が欠けている可能性がありますか?

6
Adrian B.

問題は、cronサービスが非アクティブであることでした。

ここにいる間、_/etc/cron.hourly/_でスクリプトを作成するために見つけたすべての手順を要約します。

  • スクリプトの名前が_run-parts_に有効な文字のみを使用していることを確認してください(例:[a-zA-Z0-9_-])。
    だからしないでください _.sh_のような拡張子を使用します。
  • スクリプトが実行可能であることを確認してください。
    そうでない場合:_chmod +x /etc/cron.hourly/yourScript_
  • スクリプトの上部にシバンが含まれていることを確認します(_#!/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_
7
Adrian B.