CANPAN ブログ検索
Loading
  • もっと見る
<< 2019年09月 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
カテゴリアーカイブ
最新記事
最新コメント
CentOSで、「kernel」を「update」した後で、「reboot」する [2014年09月13日(Sat)]
CentOSで、「kernel」を「update」した後で、「reboot」する


 CentOS(6.5 i386)のサーバーを24時間動かしています。

 いままで、「yum update」を1時間に1回実行していました。

 そして、毎日1回、「logwatch」の記録を見て、「kernel」が「update」していたら、手動で「reboot」をしていました。

 しかし、手動で「reboot」するのは手間がかかるので、自動的に「reboot」する方法を考えました。

 その結果、毎時間ごとの「update」で、午前1時のみ「kernel」の「update」をして、「kernel」が「update」していれば、「reboot」を実行することにしました。さらに、「kernel」が「update」したあとで、メールで知らせるようにしました。

 その方法は、まず、「/home/yum_update_kernel」と「/home/yum.not.kernel.conf」というファイルを作成します。

 そのあとで、「crontab -e」を実行して、上の二つのファイルを書き込みます。

1 crontabの内容
*****開始*****
5 1 * * * /home/yum_update_kernel >> /dev/null
5 0,2-23 * * * yum -y -c /home/yum.not.kernel.conf update >> /dev/null
*****終了*****
説明
1行目:毎日、午前1時5分に「/home/yum_update_kernel」を実行し、結果を記録に残さない。
2行目:毎日、午前1時以外の時間の5分に「yum -y -c /home/yum.not.kernel.conf update」を実行し、結果を記録に残さない。

2 ファイルの内容
@
/home/yum_update_kernel
*****開始*****
#!/bin/sh

yum check-update | grep -i kernel

umu=$?

if [ $umu -eq 0 ]
then
yum -y update
echo kernel_update | mail -s caution root@****.jp
reboot
else
yum -y -c /home/yum.not.kernel.conf update
fi
*****終了*****
説明
1行目:おなじみの呪文なので、確実に書き込んでください。
3行目:「update」するファイルを調べて、「kernel」という名前のファイルがあれば、戻り値が「0」になります。ファイルが無ければ、戻り値が「1」になります。
5行目:「umu」という変数に、戻り値を書き込みます。
7行目:if文で、「umu」という変数が「0」に等しいか確認します。
8行目:「umu」という変数が、「0」に等しいならば、次の行を実行します。
9行目:「yum -y update」を実行します。
10行目:件名「caution」、内容「kernel_update」で、「root@****.jp」にメールを送ります。
11行目:再起動を実行します。
12行目:「umu」という変数が、「1」に等しいならば、次の行を実行します。
13行目:設定ファイル「/home/yum.not.kernel.conf」を使用して、「kernel」以外を「update」します。
14行目:if文終了

A
/home/yum.not.kernel.conf
*****開始*****
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

exclude=kernel*
*****終了*****
説明
/etc/yum.confの最後の行に「exclude=kernel*」を追加した。

3 ファイルについて「所有者または管理者の変更」や「モードの変更」を実行
chown root:root /home/yum_update_kernel
chown root:root /home/yum.not.kernel.conf
chmod 744 /home/yum_update_kernel
chmod 644 /home/yum.not.kernel.conf
Posted by 山田 雄一郎 at 23:36
この記事のURL
http://blog.canpan.info/hofu_nanboku/archive/219
プロフィール

山田 雄一郎さんの画像
山田 雄一郎
プロフィール
ブログ
リンク集
http://blog.canpan.info/hofu_nanboku/index1_0.rdf
http://blog.canpan.info/hofu_nanboku/index2_0.xml