- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[bash] rsync データバックアップ)
[bash] rsyncデータバックアップ - SSHログイン時のエスケープができない
このQ&Aのポイント
- rsyncコマンドを使用してローカルサーバ(A)のデータをリモートサーバ(B)にコピーする際、SSHログイン時のエスケープがうまくできずにエラーが発生しています。
- シェルの中での実行結果を見ると、シングルクォーテーションのエスケープができていないようです。
- 複数の書き方を試してみましたがうまくいかず、どのように書けばSSHログインをしてサーバーBにデータを送れるようになるかわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
次の1行のダブルコーテーションをシングルに変更 expect -c " ↓ expect -c ' 次の1行を変更 expect "root@BのIPアドレス'\''s password:" ↓ expect "password:" send "パスワード" に改行を追加し下に interact を追加して シングルコーテーションでしめる まとめるとこんな感じ expect -c ' spawn rsync -auvze "ssh -p 10022" /tmp/ root@BのIPアドレス:/backup/ expect "password:" send "パスワード\n" interact ' exit 0 ちょっと僕のと環境がちがうと動作しないかもしれませんが もう1つこんなやり方もあります which expect で expectを調べておいて1行目に指定 #!/usr/bin/expect set timeout 10 spawn rsync -auvze "ssh -p 10022" /tmp/ root@BのIPアドレス:/backup/ expect "root@BのIPアドレス's password:" send "manage\n" interact これなら expect "root@BのIPアドレス's password:" がそのまま使えると思います それでいてエスケープ処理いらないです 以上参考までに
その他の回答 (1)
- freetaka
- ベストアンサー率53% (106/197)
回答No.2
すいません。テスト環境のパスワードはいってました(笑) send "manage\n" ↓ send "パスワード\n"
お礼
回答ありがとうございます! 早速上の方法でやってみたところ、無事バックアップの取得が出来ました。