プロジェクト

全般

プロフィール

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
      ***バックアップ元にないファイルは削除する

別ホストにバックアップを行う

sshを使用する為、若干転送速度は落ちることに注意
rsync -auzv --delete -e ssh バックアップ元パス root@バックアップ先ホスト名:バックアップ先パス
  • オプション
    • -e
      • 別途コマンドを指定する
    • ssh
      ***sshを利用してscp転送を行う

別ホストからバックアップを取得する(主にリストアなど)

逆にSSHで別ホストから自ホストへのコピーも出来る。
(リストア目的の場合、特に-uオプションが問題になるかもしれないので外しておくことにする)

rsync -azv --delete -e ssh root@バックアップ先ホスト名:バックアップ先パス バックアップ元パス

除外指定

特定のファイルやファイルパターンを除外することが出来る。
rsync -auzv --exclude '*~' --exclude /home --exclude /home/aquota.user --delete バックアップ元 バックアップ先
  • オプション
    --exclude '*~'
    *バックアップファイルを除外する
    • --exclude パス
      ***指定したファイル、ディレクトリを除外する。複数存在する場合は複数回指定する。

なお、sshを使用する場合は相手先の権限が必要になるので注意すること。