揮発性のメモ2

http://d.hatena.ne.jp/iww/

rsyncでほかのPCのルートファイルシステムを丸コピーする

とりあえす今回採る方法は

リモートのルートファイルシステムをまるっと ローカルのバックアップディレクトリにコピーする。
rsyncコマンドはローカル側から実行する。

ローカル準備

ローカルのrootユーザーが、引数なしでリモートにsshでログインできるようにしておく。
rsyncコマンドのオプションは長くなるので、できるだけ引数に書く量を減らす
SSH_CONFIG (5)

# cat .ssh/config
Host piyo
    HostName 192.168.1.102
    User piyopiyo
    Port 8228
    IdentityFile ~/.ssh/id_rsa_piyo

これでsshもscpもrsyncもスッと動く

# ssh piyo ls

# scp piyo:test.txt .

# rsync piyo:test.txt .

リモートマシン準備

rsyncコマンドをsudo可能にする

Defaults  !requiretty
piyopiyo       ALL=(root)      NOPASSWD: ALL

ALLはちょっとひどいので /usr/bin/rsync などとしておくと良い

コピー

リモートサーバでrsync+sudoでログインユーザに権限のないフォルダを同期させる | 俺的備忘録 〜なんかいろいろ〜
rsync(1) - Linux man page

リモートの / をまるっと ローカルの backup/ にコピーする。
リモート、ローカルどちらも rsync をsudoで動かすのがコツ

$ sudo rsync -axv --rsync-path="sudo rsync" piyo:/ backup/
-a ファイルの所有者とかパーミッションとかを保持する
-x ファイルシステムをまたがない。 /devとか/procとか用
-v コピーしてるファイル名を表示
--rsync-path="sudo rsync" リモート側で実行するrsyncコマンドをsudo経由にする