このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

sudo+rsync+ssh+exceptによるバックアップの自動化 このメッセージに返信する
日時: 2014/05/13(Tue) 21:01
名前: Luna
URL:
お世話になります。

先日からファイルのバックアップ処理を自動化させようとしていますが、1週間程奮闘しても成果が上がらず、大変困っています。
詳細な状況を記述いたしますので、お手数ですが、どなたか助けて頂けないでしょうか?



サーバーが2台有り、バックアップ元(192.168.12.9)からバックアップ先(192.168.12.12)にログファイル等のroot権限が必要なファイルを自動的にバックアップさせようとしています。


●1.バックアップ元サーバー:
・CentOS5.5
・rootユーザを無効化しており、一般ユーザ(hogera)をsudoで権限昇格出来るようにしています。

●2.バックアップ先サーバー:
・CentOS5.5
・バックアップ元と同様に、一般ユーザ(hogera)が登録されています。

※また、SSHはどちらのサーバーでもパスワード認証を使用しています。



バックアップ先からsudo+rsyncを使用して、手動で

rsync -avvz -e "ssh -tt" --rsync-path="sudo rsync" hogera@192.168.12.9:/var/log/messages /home/hogera/

とすると、無事にバックアップ元からmessageが取得できます。

また、上記のコマンドをスクリプト化しても、同様にmessageが取得できます。


しかし、expectでパスワード入力処理を自動化したスクリプトを作成し、バックアップ先
で実行すると

protocol version mismatch - is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(69)

というエラーメッセージがコンソールに表示されてしまいます。


スクリプトは以下の通りです。

#!/bin/bash

expect -c "
spawn rsync -avvz -e \"ssh -tt\" --rsync-path=\"sudo\ rsync\" hogera@192.168.12.9:/var/log/messages /home/hogera
expect \"hogera@192.168.12.9's password:\"
send \"[Password]\n\"
expect eof
exit
"

このエラーメッセージの一般的な対処法として、rsyncのオプションにvvを追加
したものを手動で実行し、実行結果から

--server -ulogDtprz . /home/hogera/

等の文字列を抜き出して、バックアップ元の/root/.ssh/authorized_keysに

command="rsync --server -ulogDtprz . /home/hogera/" ssh-dss AAA...

と追加する方法が数多く紹介されていますが、この方法ではSSH接続時に実行可能なコマンドがrsyncに限定されてしまうのではないか(winSCPによる自動ファイルアップロード等、他にSSHが絡む機能も実装予定の為、実行可能なコマンドがrsyncに限定されると困る)?ということを懸念しています。



1.SSH接続時の実行可能コマンド制限の件は、私の思い違いでしょうか?
2.エラーメッセージの対処法は、間違っていないでしょうか?
3.他に良い方法は有りますか?


どうぞ宜しくお願いします。
記事編集 編集
Re: sudo+rsync+ssh+exceptによるバックアップの自動化 このメッセージに返信する
日時: 2014/05/14(Wed) 11:36
名前: 田上拡志
URL:
>#!/bin/bash
>
>expect -c "
>spawn rsync -avvz -e \"ssh -tt\" --rsync-path=\"sudo\ rsync\" hogera@192.168.12.9:/var/log/messages /home/hogera
>expect \"hogera@192.168.12.9's password:\"
>send \"[Password]\n\"
>expect eof
>exit
>"

まず変な改行をしてるように見えるけど。ちゃんと継続行になってるの?
記事編集 編集
Re: sudo+rsync+ssh+exceptによるバックアップの自動化 このメッセージに返信する
日時: 2014/05/14(Wed) 19:42
名前: Luna
URL:
ご返信ありがとうございます。

>まず変な改行をしてるように見えるけど。ちゃんと継続行になってるの?

expect -c 以降の内容についてであれば、継続行になっています。
ご質問の回答になっていなかったら、すみません。
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -