@kyanny's blog

My thoughts, my life. Views/opinions are my own.

rsync はプロトコルバージョンが違うと通信できないことがある

というわけで、 rsync の豆知識をメモ。

rsync --version とすると、こんな出力が出ますが、 protocol version に注目です。

rsync  version 2.6.9  protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.
<http://rsync.samba.org/>
Capabilities: 64-bit files, socketpairs, hard links, symlinks,
              batchfiles, inplace, IPv6, ACLs, xattrs,
              64-bit system inums, 64-bit internal inums

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

このプロトコルバージョンというやつが、 rsync のちょっと違う(近い)バージョン同士だと同一なので通信できるけど、どっちかが古すぎる・新しすぎるなどでプロトコルバージョンが違うと通信できないことがあります。 man とかでちゃんと調べたわけではないのでいい加減な経験談ですが。片やセルフビルドした /usr/local/bin/rsync 片やディストリビューション付属の /usr/bin/rsync とかだったりすると、これに当てはまることがあります。

どっちかを古くするか新しくするかで、プロトコルバージョンを合わせれば問題解決です。 /usr/local/bin/rsync に同じバージョンをセルフビルドするのが一番手っ取り早いです(が、本来ならばちゃんと同じディストリで適切にパッケージ管理システムに任せるべきですね)