Home

技術系のメモと日々の雑感

近頃 .rpmnew が人気らしい

自宅のマシンを CentOS 5.1 から 5.2 にアップグレードしたときに、/etc/pam.d/system-auth と /etc/sysconfig/named で .rpmnew が作られた。
そういえば、以前は .rpmsave が作られることが多かったんだけどな。
.rpmnew は近頃見るようになったものの、漠然と、新しいバージョンの設定ファイルなんだろうということしか意識してなかったので念のため調べてみたら、大体想像していた通りだった。
一応違いを書いておくと

rpmsave:アップデート前の設定ファイルのバックアップで、新しいバージョンの設定ファイルが有効となる(置き換えられる)
rpmnew:新しいバージョンの設定ファイルで、アップデート前の設定ファイルはそのまま残る(設定は変わらない)

といったところ。
なので .rpmnew が作られた場合は、ユーザが独自に追加した設定がアップデート時に無効にされる心配がないわけだ。
最近は .rpmnew が主流になりつつあるらしいけど、こっちの方が安全だからなんだろうね。
とはいえ、.rpmnew が作られているのにそのまま放っておくと、新しく追加された機能を有効にするような設定がいつまで経っても反映されないという恐れもあるので、アップデート前の設定ファイルを触ってなければさっさと上書きしてしまった方がいいと思う。
ところで、アップデート後に元の設定ファイルと diff で比較すると変更された部分が分かるという情報を見かけたりするけど、実際にやってみるとこれは思ったほど簡単じゃない。
というのは、自分で修正した部分があると、diff の結果がアップデートで変更された部分と混じってしまうからだ。
しかも、新しいバージョンの設定ファイルには今まで見たこともないような記述が入っていたり、同じ設定でも書き方が変わっていたりするしね。
diff ってものすごく便利なコマンドだけど過信するのは危険。
そんなこんなで、設定ファイルを触るときは、少なくともオリジナルのバックアップを取っておかないといけないな〜と実感したのだった。

chkconfig で不要なサービスを手軽に無効にするには

Fedora などはデフォルトで有効になっているサービスが多いので、不要なものを無効にするのって結構面倒だね。
system-config-services は X が前提となる上、ランレベルごとにひとつひとつチェックを外していくことになるし、bash のヒストリ(カーソルキー↑)を利用して chkconfig を実行するのも結局同じ操作を何度も繰り返さないといけないし。
そこで、ちょっとでも楽をしようと思ってこんな手を考えてみた。

# echo '#!/bin/sh' > off.sh
# chkconfig --list | grep :on | cut -f1 | ¥
  xargs -i echo 'chkconfig --level 0123456 {} off' >> off.sh
# chmod 700 off.sh

見ての通りコマンドの寄せ集めだけど、サービスを無効化するオプションを付けた chkconfig が off.sh に順番に出力されるので、あとは有効のまま残しておきたいサービスの行を削って実行するだけで済むというもの。
意外と使えるかも。
え?
xinetd ベースのサービスを忘れてるって?
いや、私は xinetd 自体を止めてることが多いので・・・。
こっちも同じようにやるなら

# chkconfig --list | grep '^ ' | cut -f2 | sed -e 's/://' | ¥
  xargs -i echo 'chkconfig {} off' >> off.sh

とかかな。
行頭がタブなので、grep の正規表現の中で「Ctrl+V→Tab」を入力しないといけないのがぜんぜんスマートじゃないね。
ところで、上の方の chkconfig で、なんでわざわざ「--level 0123456」なんてやってるのか疑問に思う人がいるかもしれないけど、サービスを無効化するという意味では「--del」を使っても同じだ。
違うのは、無効化した後でも chkconfig --list で表示されるかどうかという点だけ。
「--del」だと消えてしまうけど、「--level 0123456」だとすべてのランレベルが off の状態で表示してくれるのだ。
でも、自分以外でこんな風に使ってる人って見たことがないんだよなぁ。
こっちの方が便利だと思うんだけどな。

Magic SysRQ をリモートから実行

海外のサイトを眺めていたら、ssh でログインした状態でも Magic SysRQ が使えるという情報を見付けたので試してみた。

続きを読む