Anything-sync-daemonの同期間隔を延ばそう
更にmicroSDカードの負荷を減らしたい場合は
Anything-sync-daemonは、デフォルトでは1時間に1回の頻度でMonitorixのファイルをmicorSDに同期します(rsyncを使って書き込みます)。Anything-sync-daemon導入前に仮に毎分microSDに書き込んでいたとのだとしたら、導入後では書き込み頻度が1/60になった計算になりますね。これを、2時間に1回や3時間に1回にしてやれば、更に書き込み頻度が減ってmicroSDの延命に繋がると考えられます。
ただし、同期間隔を延ばすと、不意の電源断、システム/サービスダウンがあった場合に、その間の失われるデータが増えます。でも、Monitorixが溜めているデータが数時間失われたところで支障はありませんし、それよりmicroSDが壊れることで使えなくなってしまう事の方が痛いですよね。と言うことで、Anything-sync-daemonの同期間隔を延ばしてmicroSDカードへの書き込み頻度を更に減らしたいと思います。
1. Wheezyの場合
"/etc/cron.hourly/asd-update" ファイルを/usr/bin に移動する
Wheezy(upstart)の場合、同期はcronによって行われており、そのためのスクリプトファイル"asd-update" が/etc/cron.hourly 配下に置かれています。ここにスクリプトファイルがあると cronによって1時間毎に起動されてしまうので、スクリプトファイルを/usr/bin 配下に移動します。作業はrootになって行います。
# mv /etc/cron.hourly/asd-update /usr/bin
|
- crontabコマンドで、好みのタイミングで
"/usr/bin/asd-update" が起動されるよう設定する
crontabコマンドに「-e」オプションを指定して起動し、エディタの編集画面で入力します。エディタはデフォルトではpicoが使われるようですが、環境変数EDITORに使用したいエディタのパスを設定しておくと、そのエディタを使って編集できます。以下ではエディタにviを使用しています。
# export EDITOR=/usr/bin/vi
# crontab -e
|
エディタの編集画面で以下のように入力して保存します。ここでは2時間間隔で同期するように指定しています。
00 */2 * * * /usr/bin/asd-update
|
以上で0時00分, 2時00分, ... という具合に2時間間隔で同期が行われるようになります。もっと時間間隔を延ばしたい場合は、*/2 の 2の値を変更します。
2. Jessie(systemd)の場合
Jessie(systemd)の場合、同期はasd-resyncサービス("/usr/lib/systemd/system/asd-resync.service" )によって行われており、時間間隔の設定は"/usr/lib/systemd/system/asd-resync.timer" ファイルに記述されています。
"/usr/lib/systemd/system/asd-resync.timer" ファイルを編集する
任意のエディタで"/usr/lib/systemd/system/asd-resync.timer" ファイルを編集します。作業はrootになって行います。
# vi /usr/lib/systemd/system/asd-resync.timer
|
編集箇所は以下の赤字の部分です。ここでは2時間間隔で同期するようにしています。
[Unit]
Description=Timer for Anything-sync-daemon - 2Hour
PartOf=asd-resync.service asd.service
[Timer]
OnUnitActiveSec=2h
|
(Description= の方は関係ないでしょうけどね。まぁ一応念のため。)
- systemdをリロードする
# systemctl daemon-reload
|
(systemctl restart asd-resync や、systemctl reload asd-resync では反映されないようです。面倒臭かったらrebootしてしまっても良いです。)
これで2時間間隔で同期されるようになるはずなので、systemctl list-timers で確認してみます。
# systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
日 2016-07-24 10:45:22 JST 1h 52min left n/a n/a asd-resync.timer asd-resync.service
|
|