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 時に実行する場合。