Home > ソフトウェア > rsync でバックアップ

rsync でバックアップ

サーバのバックアップに SCP で全ファイル転送とかやるのもいい加減あほらしいので ssh を通した rsync でローカルを同期させることにした(さすがに rsh は使いたくない).とりあえず使い方と使いそうなオプションを見てみると

Usage:
 rsync [OPTION]... SRC [SRC]... DEST
Options: -v, --verbose 詳細表示 -a, --archive アーカイブモード(-rlptgoD) -r, --recursive 再帰 -l, --links シンボリックリンクそのまま -p, --perms パーミッション保存 -o, --owner オーナー保存(root only) -g, --group グループ保存 -D, --devices デバイスファイル保存(root only) -t, --times タイムスタンプ保存 -u, --update アップデート(より新しいファイルの上書きはしない) -n, --dry-run 転送されるものの確認(実際の転送を行わない) --delete 送信元に無いファイルは送信先で削除 -z, --compress データを圧縮する -e, --rsh=COMMAND リモートのシェルコマンドの指定

といった感じである.一々コマンド全部打つのも面倒なので使いそうなオプションの組み合わせで makefile を用意.

.phony : put-dry get-dry put get \
         put-del-dry get-del-dry put-del get-del default
  
LOCAL=./alldata
REMOTE=ls-al@ls-al.jp:
OPTIONS=-avzu -e ssh --exclude='*~' --exclude='*.bak' --exclude='CVS'
  
default: get
put:
	rsync $(OPTIONS) $(LOCAL) $(REMOTE)
get:
	rsync $(OPTIONS) $(REMOTE) $(LOCAL)
put-dry:
	rsync $(OPTIONS) --dry-run $(LOCAL) $(REMOTE)
get-dry:
	rsync $(OPTIONS) --dry-run $(REMOTE) $(LOCAL)
put-del:
	rsync $(OPTIONS) --delete $(LOCAL) $(REMOTE)
get-del:
	rsync $(OPTIONS) --delete $(REMOTE) $(LOCAL)
put-del-dry:
	rsync $(OPTIONS) --dry-run --delete $(LOCAL) $(REMOTE)
get-del-dry:
	rsync $(OPTIONS) --dry-run --delete $(REMOTE) $(LOCAL)

get/put で削除なしの同期(REMOTE→LOCAL / LOCAL → REMOTE)で,-del が付くと削除あり,-dry が付くと実際の転送なしで確認となる.

これでバックアップが楽になったぞ(ネットワークの負荷的に)

★下記に2つの英単語をスペースで区切って入力してください

Home > ソフトウェア > rsync でバックアップ

Search
Feeds

Page Top