-n
リモート サーバーで ssh 経由のオプションを使用してドライ ランを実行しようとしたときに、次のエラーが発生しました。
# rsync --progress --delete -avhHen ssh /etc/yum [email protected]:/etc
rsync: Failed to exec n: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.1.0]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(226) [sender=3.1.0]
ssh 経由の rsync を使用して上記のコマンドのドライ ランを実行するにはどうすればよいですか?
答え1
rsync: Failed to exec n: No such file or directory (2)
そこにほぼ説明があります...
オプション-e
(長いバージョン:--rsh=)は、続く宛先マシン上のシェルとしてコマンドを実行します。
次のように伝えました:-e n
指定したオプションの順序を確認してください。( -avhHen
)
順序を逆にすると、ne
の重複した使用が-e ssh
希望どおりに機能します。
答え2
ここで問題なのはrsyncの-e
オプションは、コマンド ライン上の次の「もの」としてリモート シェルを想定しています。ここでは ですがn
、それ以前は でしたssh
。
通常、-e を独自のオプションとして分割し、次のように記述します。
rsync --progress --delete -avhHn -e ssh /etc/yum [email protected]:/etc
しかし、単に前のものを移動することもできますn
。e
最後このように使用する場合は、短いオプションのグループ内のオプションを使用します。