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' のようにリモートシェルへオプションを渡す際などにも必要なので、まだ使う機会はありそうです。


コメントを残す

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

  • キュア子の紹介

人気記事ランキング