web-dev-qa-db-ja.com

yum-cronを使用したスケジューリング

組織内のすべての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の場合は大文字を使用する必要があると思いますがわかりません。

任意の入力やアイデアをいただければ幸いです。よろしくお願いします。

1
Frisbee57

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パッケージが更新されるとこれらは戻ってきます。

1
John Mahowald