2016-05-24
chrony のバグですかね(ログローテーションのスクリプト記述ミスの模様)。
2016-06-06追記
本日 apt-get upgrade したところ、本件は修正されたようです。
$ dpkg -l chrony 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチ 説明 +++-==============-============-============-================================= ii chrony 1.30-2+deb8u armhf Set the computer clock from time
というわけで、このページは意味なくなってしまった。
おしまい。
インデックス
管理人TK所有の Raspberyy Pi の時刻合わせには、Raspbian のデフォルトの ntp ではなく、最近はやりの chrony を使っている。
すると、毎週日曜朝のログローテーションの際に、下記のようなエラー通知のメールを受信するようになった(メールアドレスは適当ね)。
From: root@rasp00.local (Cron Daemon) To: root@rasp00.local Subject: Cron <root@rasp00> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) Date: Sun, 22 May 2016 06:25:15 +0900 (JST) /etc/cron.daily/logrotate: Unrecognized command
というわけで、ぐぐったり設定ファイルを覗いたりしていると、怪しげなところを発見。
chrony用のログローテーションの設定ファイルがなんか変でないかい?(以下は元のファイル)
/var/log/chrony/*.log { weekly rotate 4 missingok notifempty compress delaycompress sharedscripts create 644 postrotate PASSWORD=`awk '$1 ~ /^1$/ {print $2; exit}' /etc/chrony/chrony.keys` cat << EOF | /usr/bin/chronyc | sed '/^200 OK$/d' password $PASSWORD cyclelogs EOF endscript }
上の EOF のところは行頭のスペースいらないよね(たしかヒアドキュメントはスペース入れちゃ行けなかったような)。
ということで、下記のように行頭のスペースを削除しておしまい(なんかかっこ悪いけど)。
postrotate PASSWORD=`awk '$1 ~ /^1$/ {print $2; exit}' /etc/chrony.keys cat << EOF | /usr/bin/chronyc | sed '/^200 OK$/d' password $PASSWORD cyclelogs EOF endscript
ホントは、logrotate自体が行頭のスペースを削除すればいいのかもしれないが・・・。
いつか誰かが正式に直してくれると思う。
お約束の。
$ uname -a Linux rasp00 4.4.9+ #884 Fri May 6 17:25:37 BST 2016 armv6l GNU/Linux $ egrep '^(NAME|VERSION)=' /etc/os-release NAME="Raspbian GNU/Linux" VERSION="8 (jessie)"