Linux全般

基本

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ファイルに記載されているファイル、ディレクトリはバックアップから除外されます。

  • ファイル名は任意
  • ※注意※ディレクトリを指定する場合は同期元ディレクトリAからの【相対パス】を指定する。

あるディレクトリ配下にある特定のファイルのみを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は上書きされる

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11