Macintosh > High Sierra
内容
rsyncのデーモン化
手でbuildの場合
まず,Mac OS Xに付属のrsyncは陳腐化している上にバグがありますので,自分で最新の公式ソースをbuildして差し替えることを,強くお勧めします.
以下の話は,自分でbuildした,rsync 3.xが,/opt/bin/rsyncにインストールされていることが前提です.
以下のテキストをXcodeなどでplist化して適当なところに保存します.
{ Label = "local.rsyncd"; ProgramArguments = ( "/opt/bin/rsync", "--daemon", ); inetdCompatibility = { Wait = NO; }; Sockets = { Listeners = { SockServiceName = rsync; SockType = stream; }; }; }
ファイル名は,Labelと一致させるために,この例では,local.rsyncd.plistとします.
そして,local.rsyncd.plistがホームディレクトリーにあるとして,
cd /Library/LaunchDaemons sudo cp ~/local.rsyncd.plist . sudo chmod a+x local.rsyncd.plist sudo launchctl load local.rsyncd.plist
でよさそうです.
MacPortsの場合
MacPortsで,rsyncをインストールする場合,インストールの最後にでるインストラクションに従って,
sudo port load rsync
で,rsyncdがデーモン化できます.その前に,/opt/local/etc内に,rsyncd.confとrsyncd.secretsを用意しておく必要があります.
アクセス権の付与
もう一点,必要なのが,サーバー側(デーモン側)のrsyncへのフルアクセス権の付与です.これをしないと,例えば写真のライブラリーのシンクロができません.クライアント側で必要かどうかは解りませんが,筆者の場合クライアントとしか動かさないMacはないので,アクセス権を与えています.
設定場所は,「システム環境設定」の「セキュリティとプライバシー」の「プライバシー」の「フルディスクアクセス」です.パスワードを入力してカギを外してから,「+」を押して,/opt/local/bin/rsyncを見つけ出して,追加します.通常では隠しファイルがダイアログに表示されませんから,コマンド+シフト+”.”を押して,表示するようにしてから選びます.ここに追加すれば,システムやデーモンの再起動なしで,アクセスできるようになります.
Staticなルートの追加
本件は,現在使用していませんが,将来的に何らかのヒントになるかも知れないので残しておきます.
クライアント側でやるべきとは思わないのですが,LinuxのルーターがARPを発しても全然効かないようなので,クライアントであるMacのほうでStatcなルーティングを試してみます.
{ Label = "local.routeadd"; RunAtLoad = YES; KeepAlive = NO; ProgramArguments = ( "/sbin/route", add, "-net", "192.168.99.0", "-netmask", "255.255.255.0", "-gateway", "192.168.1.99", ); StartInterval = 1200; }
こんなんでどうでしょう.下記リンクのページを参考にしていて,20分ごとにroute add…が実行されます.
この機能はMac OS Sierraでは使用していませんので,正しく機能するかどうか解りません.
参考にしたページ
“参考”でなく,そのまんまかも^^;