基本†rsync -av ディレクトリ ディレクトリ ※nオプションでテストが出来るので必ずチェックすること。 ディレクトリ名の後に”/”スラッシュをつけないと、指定したディレクトリの配下にディレクトリが作成されてしまうので注意。単純な差分バックアップであれば必ずディレクトリ末尾にスラッシュを付加する。 特定のディレクトリだけ排除してコピー†# rsync -av --exclude `/var/www/test` /var/www/ root@192.168.1.2:/var/www/ 複数の特定のディレクトリ・ファイルを除外してバックアップ†除外対象のファイル、ディレクトリを記述したファイルを作成して、除外対象オプションを使用します。 除外対象:.logと.gz echo *.log > exclude echo *.gz >> exclude rsync -av --exclude-from=exclude ディレクトリA ディレクトリB 以上で、excludeファイルに記載されているファイル、ディレクトリはバックアップから除外されます。
あるディレクトリ配下にある特定のファイルのみをrsyncで送る場合†aの中にあるindex.htmlファイルのみをbに差分でコピーしたい場合 includeでコピー対象のファイルを指定して、excludeで*(全部)を指定することで、includeで指定したファイルのみが転送される。 # rsync -av --include=index.html --exclude=* a/ b/ 権限を維持してrsyncで差分バックアップする手順†例 ーーーーーーーーーーー ーーーーーーーーーーーー | | | | | バックアップサーバー|→rsync+sshでアクセス→| バックアップ対象サーバー| | | | | ーーーーーーーーーーー ーーーーーーーーーーーー バックアップ対象先のサーバーにて下記設定†[root@svr01 ~]# visudo Defaults requiretty >コメントアウト #Defaults requiretty >追記 ユーザー名 ALL= NOPASSWD:/usr/bin/rsync バックアップサーバーにて下記コマンドを実行†[root@backup01 ~]# /usr/bin/rsync -av -e ssh --rsync-path="sudo rsync" バックアップディレクトリ/ ユーザー名@ uオプションで移行先のファイルが新しい場合はコピーしない†ディレクトリ0と1があり、それぞれにtest.txtがあり、同じタイムスタンプで同じ内容の場合 テストケース1†1. 1/test.txtを編集 2. rsync -av 0/ 1/ 3. 1/test.txtのデータは0/test.txtと同じデータに上書きされる テストケース2†1. 1/test.txtを編集 2. rsync -auv 0/ 1/ 3. 1/test.txtは上書きされない テストケース3†1. 0/test.txtを編集 2. rsync -auv 0/ 1/ 3. 1/test.txtは上書きされる |