Solaris のパッチを毎日チェックするスクリプト

Home » メモ帳 » Unix » Solaris のパッチを毎日チェックするスクリプト
Unix コメントはまだありません

Solaris のパッチをチェックするスクリプト。cron で 1 日 1 回くらいまわすとよさげ。
新しいパッチ(当てていないパッチ)を見つけるとメールで通知してくれる。実行には root の権限が必要。

変数 HOSTMASTER に管理者のメールアドレスを設定する。
Section: smpatch update のコメントアウトをはずすとアップデートまでやってくれるけど、テストしてない。 ((;゚Д゚)オレシラナイ

# vi /usr/local/bin/patchchkup
#!/bin/bash
LANG=C
PATH=/usr/sbin:/usr/bin:/bin:/usr/ucb
HOSTMASTER=natsu@pooh.gr.jp

SMPATCHLOG=/tmp/smpatch.`date +%Y%m%d%H%M%S`
PATCHLIST=/tmp/smpatch_list.`date +%Y%m%d%H%M%S`
touch $SMPATCHLOG $PATCHLIST
chmod 600 $SMPATCHLOG $PATCHLIST

# ------------------------------------------------------------------------------
# Section: smpatch analyze
# ------------------------------------------------------------------------------
smpatch analyze > $SMPATCHLOG || exit 1
egrep "^[0-9]+" $SMPATCHLOG > $PATCHLIST
if [ -s $PATCHLIST ]; then

# ------------------------------------------------------------------------------
# Section: smpatch update
# ------------------------------------------------------------------------------
#  smpatch update >> $SMPATCHLOG 2>&1 || exit 1
#  for i in `grep "^Failed to install patch" $SMPATCHLOG | sed 's/\.//' | awk '{print$5}'`
#  do
#    echo "+patchadd -G /var/sadm/spool/$i.jar.dir/$i" >> $SMPATCHLOG
#    patchadd -G /var/sadm/spool/$i.jar.dir/$i >> $SMPATCHLOG 2>&1
#  done

  cat $SMPATCHLOG | Mail \
    -s "There is a patch not installed in `hostname`." $HOSTMASTER || exit 1
fi

rm -f $SMPATCHLOG $PATCHLIST
exit 0
# chmod +x /usr/local/bin/patchchkup
# crontab -e
0 9 * * * /usr/local/bin/patchchkup

※毎日 9 時に実行する場合。