最近rsyncで遊んでます。
自宅サーバは2GBのHDDをソフトウェアミラーのRaid1にしてあります。そろそろリプレースしたいんですが、ファイルサーバくらいだとAtomでHDDでDDR2なんて骨董品でも未だに困らないんですよね。まだDebianの最新版でフォローされてますし。まあ、それはともかく。
ファイルサーバのバックアップはこれまで手動で取ってたんですね。でもそうするとやっぱり面倒でついつい忘れがち。それならrsyncを常駐させて、容量に余裕のある主力機に同期すればいいんじゃなかろうか、というのがことの始めです。まあ単に興味があったから、ってのもあるんですが。
で、rsyncでのファイル同期には成功して、じゃあ次は常駐だ!ということでlsyncdを導入しました。
$ sudo apt-get install lsyncd
でlsyncd.confを見様見真似で書いて、手動で起動できるところまで持ってきたんですよ。
$ sudo lsyncd /etc/lsyncd.conf
$ ps -ef|grep -i lsync
root 850 1 0 18:13 ? 00:00:00 lsyncd /etc/lsyncd.conf
よし、じゃあ後は自動起動だ!ということで
$ sudo kill -9 850
$ sudo systemctl enable lsyncd.service
$ sudo systemctl start lsyncd.service
$ tail /var/log/lsyncd.log
at Jun 10 18:19:05 2023 Normal: --- TERM signal, fading ---
$ ps -ef|grep -i lsyncd
あれれー?起動してないぞー?
で、もう一回手動で起動を試すと
$ sudo lsyncd /etc/lsyncd.conf
$ tail /var/log/lsyncd.log
Sat Jun 10 18:24:22 2023 Normal: --- Startup, daemonizing ---
$ ps -ef|grep lsyncd
root 1239 1 0 18:24 ? 00:00:00 lsyncd /etc/lsyncd.conf
起動するじゃん。ということは設定ファイルの不備じゃない、と。
と言うことで困ってたんですが、ふと「/etc/rc.dってあったよな」と思い出しまして。
$ sudo runlevel
N 5
$ sudo ls /etc/rc5.d/
K01apache-htcacheclean S02lsyncd S02samba-ad-dc S04acpid S04dbus S04mdadm S04smbd S07rc.local
README S02nmbd S02sudo S04atd S04exim4 S04rmnologin S04ssh S01console-setup.sh
S02rsyslog S03apache2 S04cron S04irqbalance S04rsync S06bootlog
ふむ、lyncdのシンボリックリンクがないな、ということで
$ ls /etc/init.d/lsyncd
lsyncd
init.dにlsyncdの起動スクリプトはある、と。覗いてみると
$ sudo cat /etc/rc5.d/S09lsyncd
〜〜
CONFIG=/etc/lsyncd/lsyncd.conf.lua
なるほど。設定ファイルの位置が違う。
$ sudo mkdir /etc/lsyncd
$ sudo cp -p /etc/lsyncd.conf /etc/lsyncd/lsyncd.conf.lua
と、設定ファイルを起動スクリプトに合わせて設置して。
$ sudo ln -s /etc/init.d/lsyncd /etc/rc5.d/S09lsyncd
$ sudo /etc/rc5.d/S09lsyncd start
Starting S09lsyncd (via systemctl): S09lsyncd.serviceFailed to start S09lsyncd.service: Unit S09lsyncd.service not found.
failed!
な・ん・で・や・ね・ん!
でもリンク元であるlsyncd叩くと
$ sudo /etc/init.d/lsyncd start
Starting lsyncd (via systemctl): lsyncd.service.
普通に起動します。だから、な・ん・で・や・ね・ん!
このへんでもうだいぶヘタれてきたんですが、
$ sudo /etc/rc5.d/S04cron status
Unit S04cron.service could not be found.
…もしかしてシンボリックリンクから実行しようとしても駄目なの?ということを発見したので、ものは試しでファイルサーバを再起動してみました。
$ sudo shutdown -r 0
〜〜
$ ps -ef|grep lsyncd
root 488 1 0 20:03 ? 00:00:00 /usr/bin/lsyncd -pidfile /var/run/lsyncd.pid /etc/lsyncd/lsyncd.conf.lua
やったー!自動起動に成功しました!!あー、疲れた。
なんか遠回りになっちゃいましたが、ここのところArch系ばかり追いかけてたのと、機能を追加するのが久しぶりすぎてすっかりDebianのことを忘れてました。不勉強ですね。
このファイルサーバ、以前からバージョンアップを繰り返して使ってきたからsystemdに変わってなかったんだろうなあ。
色々手探りでしたけど、終わってみれば楽しかったです。これでまた一つ快適になりました。