rsync 2.6.0 以降は -e ssh がデフォルトです
他人の書いたシェルスクリプトを見ていて気付きましたが、rsync (クライアント) を ssh 経由で使う際に、rsync -e ssh
のようにリモートシェルとして明示的に ssh を指定しなくても、rsync は rsh ではなく ssh をデフォルトで使うようになっていました。
以前は確かに rsh がデフォルトだった (古いマニュアルの日本語訳) のですが、バージョンによってこの動作が異なるのなら注意が必要なので、いつから ssh がデフォルトになったのだろうと調べてみました。
NEWS for rsync 2.6.0 (1 Jan 2004)
Protocol: 27 (changed)
Changes since 2.5.7:ENHANCEMENTS:
* “ssh” is now the default remote shell for rsync. If you want to
change this, configure like this: “./configure –with-rsh=rsh”.
2004-01-01 に rsync-2.6.0 で変更されたようです。思っていたよりも昔の話でした。
2004-01-01 であればうちで使用するホストは全て ssh がデフォルトと考えて問題無さそうです。
コンパイルオプションで rsh などに変更可能だそうですが、今となってはデフォルト rsh でコンパイルされたバイナリを心配してコマンドライン引数を 2 個増やすよりは、それを省略するメリットの方がまだ大きいと思えますね。
rsync の-e
オプションについては、単に使うシェルの種類を指定するだけではなく、rsync -e 'ssh -p 12345'
のようにリモートシェルへオプションを渡す際などにも必要なので、まだ使う機会はありそうです。
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。