«前の日記(2004-01-23 (金)) 最新 次の日記(2004-01-26 (月))»  

まちゅダイアリー


2004-01-24 (土)

syslog が起動していなかった

cronを設定しようと思い、vcronを起動させようと思ったところ、こんなエラーが出た。

# /etc/runlevels/default/vcron start
 * Starting syslog-ng...
parse error at 33
Parse error reading configuration file, exiting. (line 33)
 * Failed to start syslog-ng                                              [ !! ]

* ERROR:  Problem starting needed services.
*         "vcron" was not started.

調べてみると12日以降syslogが起動していなかったことが判明。 "/etc/syslog-ng/syslog-ng.conf" を見てみると、色々と記述ミスがあった。

diff -u syslog-ng.conf.org  syslog-ng.conf
--- syslog-ng.conf.org  2004-01-24 04:05:47.000000000 +0900
+++ syslog-ng.conf      2004-01-24 03:59:20.000000000 +0900
@@ -20,7 +20,7 @@

 # By default messages are logged to tty12...
 destination console_all { file("/dev/tty12"); };
-destination cron { file("var/log/cron.log"); };
+destination cron { file("/var/log/cron.log"); };
 destination mail { file("/var/log/mail.log"); };

 # ...if you intend to use /dev/console for programs like xconsole
@@ -30,5 +30,5 @@

 log { source(src); destination(messages); };
 log { source(src); destination(console_all); };
-log { source(src); destination(cron) };
-log { source(src); destination(mail) };
+log { source(src); filter(f_cron); destination(cron); };
+log { source(src); filter(f_mail); destination(mail); };

12日にsyslog-ng.confを編集した形跡がある(sudoを使っていたので判明)ので、その時に間違ったのだろうか。ああ、日記を見るとやっぱり編集していた。ちゃんと、設定を変えた後は動作確認しないとな。反省。

Tags: Gentoo

cronの設定

さて、今度こそcronを設定しようとすると、パーミッションがないとのこと。

$ crontab -l
-bash: /usr/bin/crontab: Permission denied
$ ls -l /usr/bin/crontab
-rwsr-x---    1 root     cron        23516 Dec 28 03:16 /usr/bin/crontab

どうやら、cronグループに所属していないといけないようだ。管理者の許可なくcronは使わせないというポリシーなのかも。

さらに、Linuxだと管理者(root権限)はcrontabを使わず、 /etc にある cron.hourly、cron.daily、cron.weekly、cron.monthly ディレクトリにシェルスクリプトを配置するらしい。確かに、crontabにつらつらと書くよりも分かりやすくて確実かも。Solarisとはだいぶ違うのですね。

$ sudo gpasswd -a machu cron
Adding user machu to group cron

参考

Tags: Gentoo

時刻同期 (2)

サーバの時刻をインターネット上の時刻サーバと同期させたいと思う。 前回も挑戦したのだが、rdateではほとんどの時刻サーバから接続を拒否されてしまっていた。

調べてみると、rdateが使うプロトコルはRFC 868のTime Protocolであり、ほとんどの時刻サーバが利用しているNTPプロトコルを使うためにはntpdateが必要らしい。

Debianだとapt-getでntpdateだけを取ってこれるようだけど、Gentooだとntpdを含めてインストールしなければいけないみたい。

$ sudo emerge ntp

次に、設定ファイル (/etc/conf.d/ntp-client) に時刻サーバを追加する。

NTPCLIENT_CMD="ntpdate"
NTPCLIENT_OPTS="-b ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp"

起動時にntpdateが実行されるように設定する。

sudo /sbin/rc-update add ntp-client default

このままだと、起動時にしかntpdateが実行されない(気がする)。定期的に時刻を同期するには、cronに設定するかntpdを使わないといけないのかな。とりあえず、 /etc/cron.hourly に ntpdate.cron を作成した。

#!/bin/sh

/etc/init.d/ntp-client restart
Tags: Gentoo