Rsyncによるファイルコピー¶
バックアップ元、バックアップ先のディレクトリ構成規則の注意事項として、
親ディレクトリレベルでコピーされることに注意すること。
/hoge/fuga/contents(n)
/aaa/bbb
fugaのコンテンツをbbbに再現しようとして「rsync /hoge/fuga /aaa/bbb」
とすると、「/aaa/bbb/fuga/contents(n)」となってしまう。
「rsync /hoge/fuga/* /aaa/bbb」とすることで、「/aaa/bbb/contents(n)」
とすることができる。
同一ホストでバックアップを行う¶
同一ホストとしているが、他ホストの領域をマウントできる場合もこちらで良い。rsync -auvz --delete バックアップ元パス バックアップ先パス
- オプション
- -a
***アーカイブモード。一般的に指定するオプションをまとめたもの - -u
***アップデートモード。新しいタイムスタンプのみ処理する - -v
***コピー中の進捗を表示する - -z
***転送時にファイルを圧縮する - --delete
***バックアップ元にないファイルは削除する
- -a
別ホストにバックアップを行う¶
sshを使用する為、若干転送速度は落ちることに注意rsync -auzv --delete -e ssh バックアップ元パス root@バックアップ先ホスト名:バックアップ先パス
- オプション
- -e
- 別途コマンドを指定する
- ssh
***sshを利用してscp転送を行う
- -e
別ホストからバックアップを取得する(主にリストアなど)¶
逆にSSHで別ホストから自ホストへのコピーも出来る。
(リストア目的の場合、特に-uオプションが問題になるかもしれないので外しておくことにする)
rsync -azv --delete -e ssh root@バックアップ先ホスト名:バックアップ先パス バックアップ元パス
除外指定¶
特定のファイルやファイルパターンを除外することが出来る。rsync -auzv --exclude '*~' --exclude /home --exclude /home/aquota.user --delete バックアップ元 バックアップ先
- オプション
--exclude '*~'
*バックアップファイルを除外する- --exclude パス
***指定したファイル、ディレクトリを除外する。複数存在する場合は複数回指定する。
- --exclude パス
なお、sshを使用する場合は相手先の権限が必要になるので注意すること。