Linux rsync

(2009.1.25-2015.5.20)

rsyncコマンドでデータのバックアップをとる。

(環境) CentOS 5.1-5.5

(以下プロンプトが#ならroot,$なら普通のユーザー)

rsync

インストール

CentOS 5.1には必要なものは全て標準でインストールされている。また,必要なサービスも全て稼動している。

以下,バックアップ対象のサーバーをa.com,バックアップデータを保存するサーバーをb.comとする。

同期

a.comで次のコマンドを実行すると,a.comのabcディレクトリとb.comの/backup/a/abc/ディレクトリの内容が完全に一致するように,a.comからb.comにデータがコピーされる。(同期)。
# rsync -a --delete abc/ b.com:/backup/a/abc/
注意)
  1. b.comの/backup/a/が存在しないとエラーになる。mkdir -p /backup/a/で/backup/a/を作っておくとよい。
  2. コピー元abc/の末尾の/をつけないと,/backup/a/abcの中にabcというディレクトリが作られて同期が行われる。
  3. 除外したいファイルやディレクトリは--excludeオプションで。詳しくはman rsyncで。
  4. b.comのrootのパスワードを求められる。RSA鍵でsshログインできるように設定しておけば,rsyncで接続するする度にパスワードを求められなくなる。

復元

a.comでabcディレクトリを作成して次のコマンドを実行すると,b.comにバックアップディレクトリabcを復元することができる。
# mkdir abc
# rsync -a b.com:/backup/a/abc/ abc/
また,次のようにファイル単位の復元もできる。(aaa.txtは存在しなくてもよい)
# rsync -a b.com:/backup/a/abc/aaa.txt aaa.txt

定期実行 cron table

# crontab -e
分 時 日 月 曜日 コマンド
を記述すれば(使い方はviと同じ。/var/spool/cron/ユーザ名 に保存される。),コマンドを定期的に自動実行させることができる。

参考

  1. はじめてrsyncを使う方が知っておきたい6つのルール(http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html) 2008.8現在
  2. rsyncを使った熟練者レベルのバックアップ(http://www.itmedia.co.jp/enterprise/articles/0707/19/news059_3.html) 2008.8現在
  3. cronとは (http://tech.bayashi.net/svr/doc/cron.html) 2008.8現在