(2010.03.03)
killall syslogd killall klogd こっちも必要かな?
/etc/syslog.confにログの出力先が書いてあるので、ここを編集してramdiskに書き出させることに。起動は;
/sbin/syslogd -m 0 ←「-m 0」を忘れずに!(忘れると20分に1回MARKが出る) /sbin/klogd
killall crondしちまえばいいだんが…これもちと問題かねえ…。 一応、確認したのは、cronによってhourlyのアクセスがある(毎時1分)。 それとは別にrmmod -asによる10分ごとのアクセスがある。こりはなに? わかんないけど、とりあえず cronを殺しておきましょう…いいのかな?
あれれ、またアクセスがあったぞと…ん?ramdiskができていない? できてなかったんだ、やっぱり…う〜む、自動で作る方法を見つけなきゃ。
□RAMDISKを自動生成する方法
□crondのログの出力制御
cronの方は、/etc/crontabに設定が書かれているが、これはログの出力先はの指定はできないんだね。個人用のは/var/spool/cronにあるそうだが、ウチの環境では空。crondを再起動するときは;
/usr/sbin/crond
解決方法
syslogd → /etc/syslog.confを編集して、ログをramdiskに書き出させる。 crond → 実行間隔を変更して、最も頻度の高いものでも1日1回にする。
cron.* /ramdisk/log/cronのような行を追加すればよいはずなのだが、なぜか私の環境ではこの設定は無効になり、相変わらず/var/log/cronに書き出されてしまう。どこかにsyslog.confよりも上位の設定があるのかも知れない。
crondの実行間隔は/etc/crontabで設定されている。この中に書き込まれているのはhourly/daily/weekly/monthlyで、このうち問題になるのはhourlyの設定。これを停止するか、あるいはdailyに変更すればよい。幸い、私の環境ではhourlyの設定(/etc/cron.dailyの中にある)は空なので、単純にhourlyの行をコメントアウトすればよい。ただし、このcrontabファイルでは、10分おきの設定は変更できない。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts #01 * * * * root run-parts /etc/cron.hourly ←コメントアウト 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly10分おきに実行されるkmodの設定は/etc/cron.dの中に入っている。このcron.dというのはcrontabには記述がないが、hourly/daily/weekly/monthlyのいずれにも該当しない実行間隔を持つコマンドを格納しておく場所のようだ。と言っても、「cron.weekly」や「cron.hourly」などのディレクトリ名が直接実行間隔を規定しているわけではなく、設定をちょいと書き変えれば、たとえばcron.weeklyをdailyに実行させることも可能。週に一回実行するものはcron.weeklyにまとめておいた方が便利、というような便宜上の分類に過ぎない。
cron.dについても基本的に同じで、中身をdailyやweeklyに実行してはいけないわけではない。実際、kmodをdailyに実行させるのは大して難しくない。/etc/cron.d/kmodを次のように編集すれば良い。
*/10 * * * * root /sbin/rmmod -as 10分ごとに実行 ↓ 01 4 * * * root /sbin/rmmod -as 毎日午前4時01分に実行これで各デーモンを起動し直せば、勝手にHDDをアクセスするのは毎日1回のみとなるはず。ただし、元々10分ごとに実行するものを1日1回に減らしては弊害が出るかも知れない。ちなみに、このkmodは不要モジュールのクリーナーらしい。
う〜ん、まだ20分に1回アクセスがあるようだ。
linux -- MARK --が書き込まれている。でも、このログ自体はramdisk上なんで、カンケーないはず。 問題は、何が起きているのか? なんか起きてるからHDDアクセスにいくんだろう。 ちなみに、このMARKはLinuxが「起きてるよ〜」という証拠らしい。 だから、他のコマンドが実行されている間はこのMARKは発生しない。 でも、なんでHDDにアクセスにいくの? 実はramdiskができてなかったりして…流石にそれはないか…dfで確認済み
どうやら、syslogdの起動オプションで抑止できるらしい。 つ〜か、元々は抑止していたようだ。-mオプションで間隔を指定するのだが、0を指定すれば抑止できる。 /etc/rc.d/init.d/syslogに;
daemon syslogd -m 0つ〜行があるので、もともとは止まっていたんだね。 なので、syslogdを-m 0付きで再起動すればよろし。