今どきは、っていうかちょいとググると猫も杓子もrsyncとsshでやる方法ばかりだが、閉じられたローカルエリア内の比較的簡素なネットワークでubuntu serverが2つあるぐらいの状態なら別にrsync+sshよりシンプルで転送もより高速なのでrsync serverを立ててバックアップserverにしたほうがいい場合もある。↓これと同じね。
で、↑を書いていて、ふと、そう言えばたまにしか設定しないし忘れそうだなぁ、とか思ってたところに丁度とあるところにminiPCでsamba server2つめを立ち上げに行って、定期的にバックアップ取れれば良いだけなんで、rsync server立ててバックアップを取ることにした。てことで忘れないうちにメモっとく。
Contents >>>>>>>>
rsync serveを有効化
2台ともubuntu 24.04 LTSなので、rsyncは標準で入っている。のでrsync serverにしたい方のrsyncdを有効にするだけでOK。
/etc/default/rsync
の
RSYNC_ENABLE=false
を
RSYNC_ENABLE=true
にすれば良いだけ。あとは設定ファイル。
rsyncd.confの作成
ubuntuをinstallしたばかりの状態ではrsyncはInstallされているがrsyncdの設定ファイルは無い。基本的にrsync + sshでやれってことなのかも。てことで無いので作る(viでもnanoでも好きなエディタで)。
$ sudo nano /etc/rsyncd.conf
ユーザ名パスワード無しな超簡単な設定で良いので中身はこんな感じ(もっと詳しくはrsyncのマニュアル読むなりググるなり)
#
# Global options
#
uid = [rsync daemon実行ユーザ]
gid = [rsync daemon実行ユーザグループ]
log file = [ログファイルPATH,指定なしでsyslogに出力]
log facility = [ログレベル,デフォルトはdaemon]
pid file = [pidファイルPATH]
hosts allow = [接続を許可するホスト、CIDR]
hosts deny = [接続を許可しないホスト、CIDR]
dont compress = [圧縮しない拡張子]
#
# Module options
#
[モジュール名]
comment = [コメント]
path = [同期ディレクトリ]
auth users = [認証ユーザ名]
secrets file = [認証ユーザパスワードファイル]
read only = [readonly指定、デフォルトはyes]
てことで、今回の場合は例えばこんな感じ。(バックアップ元が192.168.0.240/24と仮定、且つそのserverしかrsyncd使わない)
#
# Global options
#
uid = root
gid = root
hosts allow = 192.168.0.240 localhost
hosts deny = *
list = true
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png
#
# Module options
#
[backup01]
path = /mnt/backup_disk2/backup
read only = false
サービスを再起動する
一度再起動する
$ sudo service rsync restart
rsyncdのポートを確認しつつ動いているのを確認
一応確認。
$ nmap localhost
PORT STATE SERVICE
・・・
873/tcp open rsync
・・・
873/tcpで動作してますね。
rsyncd自動起動
$ sudo systemctl enable rsync.service
確認
$ sudo systemclt list-unit-files | grep rsync
rsync.serviceが「enables」と表示されればOK
rsyncdクライアント側server
クライアント側、つまりバックアップ元のserverからモジュールが有効になっているか確認。(rsync serverは192.168.1.29と仮定)
$rsync -avvvn rsync://192.168.0.29 .
Connected toとか、rsync.confで設定したモジュール名とか確認できればOK。
あとは
のバックアップ元と同じ。(同期先ディレクトリの作成とか、cronで定期実行とかはここではまるっと割愛)