-2

リモート サーバーからローカル システムにいくつかのファイルを同期したいと考えています。ファイルが大きいため、数時間続く可能性があるため、nohup として実行したい:

nohup rsync -r <user>@<remote>:<dir> <local-dir> &

問題は、リモートサーバーのパスワードの入力を求められたことですが、パスワードを入力した後、bash はちょうど言った

-bash: mypassword: command not found

--password-file オプションも試しましたが、 --password-file は SSH アカウント用ではなく、rsync サービス用のようです。

Nohup を維持しながらパスワードを自動的に入力する方法を教えてください。

4

2 に答える 2

2

そのようなユースケースではパスワードを入力したくありません。ssh-keygen -f ~/.ssh/id_rsa_that_keyただし、パスワードで保護された ssh キー ( ) を使用ssh-add ~/.ssh/id_rsa_that_keyして、そのパスワードをキャッシュに保持することができます。そして実際、それはプログラマー関連ではありません...

于 2012-05-21T10:26:29.563 に答える
0

マンページから:

リモート デーモンの一部のモジュールでは、認証が必要になる場合があります。その場合、接続時にパスワード プロンプトが表示されます。環境変数 RSYNC_PASSWORD を使用するパスワードに設定するか、 --password-file オプションを使用すると、パスワード プロンプトを回避できます。これは、rsync をスクリプト化するときに役立つ場合があります。

警告: 一部のシステムでは、環境変数がすべてのユーザーに表示されます。これらのシステムでは、 --password-file を使用することをお勧めします。

あなたのエラーは、パスワードを変数に割り当てていて、bash スクリプトによってコマンドとして解釈されていることが原因のようです。

上記の環境変数を設定し、bash スクリプトから「mypassword」を削除して、もう一度試してみてください。

于 2012-05-21T10:35:04.030 に答える