んたのブログ

週末になると出没します。

不勉強

最近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に変わってなかったんだろうなあ。
 
色々手探りでしたけど、終わってみれば楽しかったです。これでまた一つ快適になりました。