バックアップを考える(2)
2015/04/19
※サーバー移行しました: http://cf661650.cloudfree.jp/altmo_toolbox
|
[Prev]
[Next]
[Top]
,
Digital
[Prev]
[Next]
|
rsyncとは
- 前回は robocopy コマンドによるバックアップを紹介しましたが、今回は rsync を紹介します。rsync はローカル/リモートの両方においてファイル及びディレクトリの同期を取るGNUのツールです。よってDebianやUbuntu等のPC系UNIXマシンがあれば、rsyncをセットアップすることは容易です。比較的スペックの低いPCでも動作するので、UNIX系PC1台を余り及び安いパーツで組めば、共通のバックアップマシンとして使用することができます。
- rsyncはパッケージマネージャでインストールすることができます。今回はssh経由でデータ転送を行うため
rsync
ssh
のパッケージ二つをインストールします
- 次にWindows用のrsync及びsshのインストールです。[www.itefix.no/i2/content/cwrsync-free-edition]のページ下部からcwRsync_5.4.1_x86_Free.zipファイルを入手します。入手後はWindows用ツールとして通常の手順でインストールして下さい。cwRsyncの中にはsshも含まれており、Cygwinのサブセットとして単独で動作可能になっています。
- 次にインストールしたcwRsyncの中のコマンド、「rsync」と「ssh」をコマンドプロンプトから使えるようにするため、コマンドの置かれているパスをPATH環境変数に登録します。Windows7ならコントロールパネル→システム→システムの詳細設定(左側メニュー)等から「システムのプロパティ」画面を開きます。それから下図のように環境変数ボタンを押し→Pathを選んで→編集ボタンを押し→「cwRsyncをインストールしたPath\bin」を追加登録します。

rsyncを使ってみる
- それでは実際にrsyncを使ってみましょう。バッチファイルとして作ると、下記の様な記述になります。ちなみに「←」以降は説明のために書いている記述で、実際にバッチファイルに書かれているわけではありません
@echo off
set HOME=%HOMEDRIVE%%HOMEPATH% ←(1).ssh/の置き場所
echo #=============================================
echo # [Enter]を押すとバックアップを開始します。
echo # 中止する場合は[Ctrl]+[C]を押してください。
echo #=============================================
pause
@echo on
rsync ^
/cygdrive/c/Users/hoge/Documents ^ ←(2)バックアップ対象
/cygdrive/c/Users/hoge/Pictures ^ ←〃
/cygdrive/c/Users/hoge/Music ^ ←〃
/cygdrive/c/Users/hoge/Downloads ^ ←〃
^
-auvz --delete --stats --rsh=ssh ^ ←(3)オプション
^
backup_acc@192.168.11.100:/home/backup_acc/Backup_dir ←(4)バックアップ先指定
@echo off
echo #=============================================
echo # バックアップが終了しました
echo # [Enter]を押してください。
echo #=============================================
pause |
- (1)では環境変数HOMEを設定しています。これはsshの実行に必要なもので、HOMEが指定する場所に.sshディレクトリが作成され、そこにsshの設定ファイルや鍵データ等が置かれます。HOMEDRIVE と HOMEPATH はWindowsで最初から定義されている環境変数です。それぞれホームディレクトリのあるドライブ、ホームディレクトリのパスを表しています。%で囲んでいるのは環境変数名であることを意味しています
- (2)はバックアップ対象ディレクトリの指定です。必要なだけ複数指定できます。しかし変な表記ですね。これはWindows内のディレクトリがCygwin表記されていることによります。変換の規則は下記2点です。そして重要な注意点があります。
[1]ドライブ名 : ドライブ文字: → /cygdrive/ドライブ文字
(例)C: → /cygdrive/c
[2]区切りの\(バックスラッシュ)を/(スラッシュ)に変換
(例)C:\Users\hoge\Documents → /cygdrive/c/Users/hoge/Documents
[注意点]ディレクトリ名の最後に「/」をつけてはいけません!!
OK : /cygdrive/c/Users/hoge/Documents
NG : /cygdrive/c/Users/hoge/Documents/
間違えると指定ディレクトリ以下の中身だけがコピーされます。複数Dir指定のときは混ざってしまいます。
コピー元指定時にのみ効いてきます。 |
- (3)はrsyncの動作指定オプションです。
-auvz
a : アーカイブモード。属性保持。
u : 既存ファイル処理。更新時のみコピーする。
v : 処理経過を表示する。
z : データを圧縮する。
--delete : コピー元に無いファイルはコピー先でも削除
--stats : 転送効率の表示
--rsh=ssh : リモートシェルの指定。sshがお勧めです。 |
- (4)はコピー先の指定です。IPアドレスやコピー先ディレクトリの情報を記述しています。
backup_acc@192.168.11.100:/home/backup_acc/Backup_dir
| | |
| | +->バックアップ先ディレクトリ名
| +->バックアップ先マシンのIPアドレス
+->バックアップ先マシンのログインアカウント名 |
|
|
[Prev]
[Next]
[Top]
,
Digital
[Prev]
[Next]
|