組織内のすべてのGNU/LinuxマシンのSpacewalkを使用してパッチ管理を構成しようとしていますが、スケジューリングに少し苦労しています。変更管理では、開発/テスト環境に毎週火曜日の午前5時から7時にパッチを適用し、本番環境に木曜日の朝に同じ時間枠でパッチを適用することを決定しました。パッチの確認、ダウンロード、適用に加えて、カーネルの更新時にサーバーを再起動するスクリプトと、yumをクリーンアップするスクリプトを追加しました。これらのスクリプトを/etc/cron.weekly/に配置し、anacrontabを次のように構成しました。
1 5 cron.daily Nice run-parts /etc/cron.daily
7 5 cron.weekly Nice run-parts /etc/cron.weekly
私の問題は、すべてが毎日実行されることです。この問題は、yum-cron/etc/yum-cron.confの構成ファイルが原因であると思います。このファイルの構成方法に関する情報を見つけようとしましたが、DAYS_OF_WEEK/days_of_weekの設定は明らかに魔法が起こる場所です。マニュアルページも実際には役に立ちません。私の質問は、F ***を火曜日(2)または木曜日(4)にどのように設定するかです。私は次のようなさまざまなバリエーションを試しました:
DAYS_OF_WEEK=2
DAYS_OF_WEKK="2"
days_of_week = 2
days_of_week = "2"
それでも、私が望むように機能するものは何もないようです。 CentOS 7の場合は小文字のdays_of_weekを使用し、CentOS6の場合は大文字を使用する必要があると思いますがわかりません。
任意の入力やアイデアをいただければ幸いです。よろしくお願いします。
EL7のyum-cron3.4は、DAYS_OF_WEEK機能を含む/ etc/sysconfig/yum-cronを削除したようです。/usr/sbin/yum-cronに同等のものがありません。
設定ファイル(/etc/yum/yum-cron.conf
)をお好みに合わせてカスタマイズします。少なくとも、デフォルトのrandom_sleep
は2時間のウィンドウよりも長くなります。
独自のスクリプトを作成してスケジュールします。
#!/bin/sh
# /usr/local/bin/updateandreboot
# Wrapper for update and reboot
# TODO does not respect /var/lock/subsys/yum-cron
/usr/sbin/yum-cron /etc/yum/yum-cron.conf && \
/usr/bin/needs-restarting -r || \
/usr/sbin/shutdown -r now "Restarting for scheduled software update"
Anacronでの曜日のスケジュールがわからないので、cronでスケジュールします。
# /etc/cron.d/autoupdate
# 05:01 on Tuesday
1 5 * * 2 root /usr/local/bin/updateandreboot
また、必要に応じてyum clean packages
をスケジュールします。
Yum-cronのデフォルトの日次および週次スケジュールを削除します。 rm /etc/cron*/*yum*cron
はそれを行いますが、yum-cronパッケージが更新されるとこれらは戻ってきます。