本日も乙

ただの自己満足な備忘録。

rsyncで"protocol version mismatch -- is your shell clean?"とエラーが出た場合の対処方法

EC2インスタンスからMac book Airにファイルをrsyncで持ってこようとしたら以下のエラーが出ました。

$ rsync -av my-server:/home/foo/bar_* ~/

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync/compat.c(61) [receiver=2.6.9]

こちらを参考に調べてみました。

$ ssh myserver /bin/true > out.dat
$ cat out.dat
^[foo^[\ 

リモート側(EC2インスタンス)の.bashrcが問題でした。

printf "\033kfoo\033\\"

tmux用に表示を変えていたのがいけないみたいです。上記のprintfをコメントアウトしたらrsyncできました。

ちなみにscpもダメでした。

$ scp my-server:/home/foo/bar_* ~/

C0664 222690 bar_1.txt

rsyncやscpでsshを使うときに.bashrcを舐めないようにしたのですが、どうすれば良いかまだわかりません・・・。