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