不要kernelの自動削除

某MLで拾った小技。

yumの自動アップデートでは kernel だけは上書きインストールではなく追加されていくため、長く運用していると自然に /boot の容量が増えていく。容量が気になりだしたらその都度手動で削除していた。せいぜい年に1度位の頻度なのでたいした手間ではないのだが、一度動いているkernelを間違えて消してしまって偉い目にあったことがあるんで、自動化できるのならそれに越したことはない。

yum-utilsパッケージに含まれるpackage-oldkernelコマンドを使うとこれか可能になるとのことで、早速やってみる。

■ディスク容量の確認

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/md2              71537976   5275188  62570256   8% /
/dev/md0                101018     34802     61000  37% /boot
tmpfs                  1029848         0   1029848   0% /dev/shm

■インストール済みの kernel の確認

# rpm -qa | grep kernel | sort
kernel-2.6.18-128.1.14.el5
kernel-2.6.18-128.1.16.el5
kernel-2.6.18-128.1.6.el5
kernel-2.6.18-128.2.1.el5
kernel-2.6.18-128.4.1.el5
kernel-devel-2.6.18-128.1.14.el5
kernel-devel-2.6.18-128.1.16.el5
kernel-devel-2.6.18-128.1.6.el5
kernel-devel-2.6.18-128.2.1.el5
kernel-devel-2.6.18-128.4.1.el5
kernel-headers-2.6.18-128.4.1.el5
kernel-xen-devel-2.6.18-128.1.10.el5
kernel-xen-devel-2.6.18-128.1.14.el5
kernel-xen-devel-2.6.18-128.1.16.el5
kernel-xen-devel-2.6.18-128.2.1.el5
kernel-xen-devel-2.6.18-128.4.1.el5

■現在動いている kernel の確認

# uname -a
Linux ml115.yomaigoto.jp 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

■yum-utils パッケージのインストール

# yum -y install yum-utils

■不要な kernel の削除

# package-cleanup --oldkernel
Setting up yum
Not removing kernel 2.6.18-128.1.6.el5 because it is the running kernel
I will remove the following 4 kernel related packages:
kernel-2.6.18-128.1.16.el5
kernel-2.6.18-128.1.14.el5
kernel-devel-2.6.18-128.1.14.el5
kernel-devel-2.6.18-128.1.16.el5
Is this ok [y/N]: y

■cron に登録

[/etc/cron.monthly/package-clean]
#!/bin/sh

/usr/bin/package-cleanup -y --oldkernel

CentOS 4系でも使えるが、削除対象となるのが kernel と kernel-devel だけであるため、SMP kernelが丸残りするのが難点。

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン