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は上書きされる