不要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が丸残りするのが難点。