どのようなコマンドにすればいいのでしょうか?
結論は、マシンAの/sbinのフォルダをマシンBに持ってきたい。
マシンA:
IP:192.168.1.201
対象ディレクトリ:/sbin
マシンB:
IP:192.168.1.202
対象ディレクトリ:/
該当のマシンAのディレクトリの権限などをそのまま
マシンBのrootディレクトリにsbinとして持ってきたいんです。
もちろんSSHのポートは開いてますが、公開鍵でしかログインは出来ません。
Bがローカルマシンだとしますと、Bの/に移動して
rsync -auvz --numeric-ids --delete 192.168.1.201:/sbin ./
でいいかと思います。
そうでないなら
rsync -auvz --numeric-ids --delete 192.168.1.201:/sbin 192.168.1.202:/
かな。これはやったこと無いですが(^^ゞ
バックアップ元ディレクトリ最後に / をつけない場合、
バックアップ先にディレクトリを作った上でバックアップします。
ウェブのドキュメントではここがわかりやすいです。
http://www.infoscience.co.jp/technical/rsync/index.html
・マニュアル(オプションはここで確認してください)
http://www.infoscience.co.jp/technical/rsync/rsync.html
・使用例
rsync -azvv -e "ssh -p 22 -i keyfile" root@192.168.1.201:/sbin /
"ssh -p 22 -i keyfile"は自分で作成するんですか??
自分だったらどうするかということで。。。
マシンBから (192.168.1.202) でやるとしたら
次のようにしますかね。
rsync -e ssh -avc hoge@192.168.1.201:/sbin /
ここで hoge はマシンAにログインできるユーザー名です。
それと、
rsync -n -e ssh -avc hoge@192.168.1.201:/sbin /
みたいに -n をつけて事前に何が起きるか確認した方がいいかもしれんです。
削除するオプションだったと思いますが、私は怖いので
使ったことないです。
ありがとうございますw
こんにちは。
リモートコマンドを使うときはrhostなどにアクセス権の設定が必要のはずです。
http://hp.vector.co.jp/authors/VA002739/ntcom/com_tcpip/rsh.htm
はずれていたらごめんなさい。
ありがとうございますw
あの、もしかして /sbin を / にコピーするっていうのは例え話ではなくて、
本当にそうしたいんでしょうか?
だとすると、それはちょっとまずいように思います。
/sbin はシステムで利用する重要コマンド群ですから、他のマシンからコピーする状況というのは通常無いように思います。
なお、Permission denied はまさしく権限無しということです。
一般ユーザーは / に直接書き込みはできません。
通常リモートバックアップは、自分のディレクトリ以下に例えば ~/backup などのディレクトリを作っておいて、そこに必要なファイルをコピーしておくような感じで使うことが多いと思います。
あと、rsyncのオプション-eですが、現在はデフォルトでsshを利用しますので不要じゃないでしょうか(僕はFreeBSDですが他の環境では違うのかな)。
rhostへの登録も不要です。
ルートアカウントで作業するとするとparaizoさんの通りroot@が必要ですが、
sshのデフォルト設定ではrootのログインはできないはずですので、/etc/ssh/sshd_configの見直しが必要です。
そうなんですよ。
/sbin を消されてしまったので
戻したいんです。
もう1個同じマシンなので問題は
ないと思いますがどうでしょうか?
あ、あの…
「消された」って、誰にですか?
クラックされたってことでしょうか?
ネットワーク内にルート権限をもっている素人がいらっしゃるのでしょうか?
上の場合、全て無かったことにしてOSを再インストールしてください。
下の場合、Aマシンの /etc/ssh/sshd_config にて PermitRootLogin(だったかな)を yes にしてsshdを再起動した後に
Bマシンでルートになってから
rsync -auvz --numeric-ids 192.168.1.201:/sbin /
でどうでしょうか?
1回限りのコピーですから --delete オプションは不要です。
私自身 /sbin を上書きした経験がありませんので、
これ以上は提言に自信はありません。
私がやるとすると、sshでAマシンにログインしてからルートになって /sbin 以下を tar でまとめて、
自分のディレクトリ下に一旦保存します(~/tmp/sbin.tar などにして)。
そいつを scp でBマシンの自分のディレクトリ下にコピーしておきます。
後はBマシンにログインしてからルートになって、sbin.tar を / に展開します。
こうすると /sbin 以下のコマンド郡は確実にBマシンに存在しているので、
少しづつ様子を見るとかできますし、手順を間違った時もローカルマシンの作業で済むので、気が楽です。
ありがとうございますw
素人ではないのですが、消されましたね。
root権限は渡していました・・・
マシンBでやったら以下のメッセージが出ました。
Permission denied (publickey,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [receiver=2.6.8]