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エンジニア募集の採用情報をご覧いただけます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA