(未解決案件)
バックアップとか、 リモート・マシンとの間で作業ディレクトリィの同期をするのに、 rsync を使っている。 とても便利で手放せないのだけれど、 日本語のファイル名の表示で文字化けが起こる。 ふと直せないはずはないと思って調べたら、 -iconv=UTF8-MAC,UTF-8 というオプションで解消できると。なるほど、そういうのがあるのか。
ところが macOS に付属する rsync は古いので、そのオプションに対応していない。
% /usr/bin/rsync --version openrsync: protocol version 29 rsync version 2.6.9 compatible % |
こういうときは MacPorts 頼み。
port search rsync |
sudo port install rsync |
これで /opt/local/bin に rsync がインストールされる。 PATH を適当に設定すれば、これを実行できるようになる。
ところがローカルに使う場合はこれで良いけれど、
rsync --iconv=UTF8-MAC,UTF-8 --avuz どこかのホスト:パス名1 パス名2 |
rsync: on remote machine: --iconv=UTF-8: unknown option |
リモート・マシンにも同様にして MacPorts で rsync をインストールしたけれど、 事態は改善されなかった。相変わらず /usr/bin/rsync を起動している。
あれ、でもそうだとすると、 /usr/bin/rsync そのものを置き換えないといけないのかな?
古い古い macOS であれば
cd /usr/bin sudo mv rsync rsync.old sudo ln -s /opt/local/bin/rsync . |
というわけで、回避策を調べて
rsync --iconv=UTF8-MAC,UTF-8 --rsync-path="/opt/local/bin/rsync" むにゃむにゃ |
毎度、こう長たらしいオプションを入力するのは面倒なので、どうしようかな。
どこか/rsync |
#!/bin/sh /opt/local/bin/rsync --iconv=UTF8-MAC,UTF-8 --rsync-path="/opt/local/bin/rsync" "$@" |
どこか/rsync |
#!/bin/sh /opt/local/bin/rsync --iconv=UTF8-MAC,UTF-8 --rsync-path="/usr/local/bin/rsync" "$@" |
cd /usr/local/bin sudo ln -s /opt/local/bin/rsync . cd - |
ふう。まだあちこち変なことが起こったりしているけれど、まあまあ動き出した。 やってみると、色々発見があるし、単純に表示が化けないのは気持ちいい。 実際に何が転送されているのか分からないというのは意外とストレスだったようだ。
なんでも、rsync サーバーというのがあるそうだ。
rsync has the following notes: To use the rsyncd server you must copy /opt/local/etc/rsyncd.conf.example to rsyncd.conf and add your modules there. See 'man rsyncd.conf' for more information. A startup item has been generated that will aid in starting rsync with launchd. It is disabled by default. Execute the following command to start it, and to cause it to launch at startup: sudo port load rsync |
/opt/local//etc/rsyncd.conf.example |
# Sample rsyncd configuration file. # You must copy it to rsyncd.conf to use it. log file=/opt/local/var/log/rsyncd.log pid file=/opt/local/var/run/rsyncd.pid read only=true use chroot=yes list=false # Specify the modules you want to use here. See "man rsyncd.conf" for more # information. |
面白そうだけど、これは後日。
http://x68000.q-e-d.net/~68user/unix/pickup?rsync#google_vignette