rsyncを+ NFS実際のビジネスケース

同社は、データが重要であるNFSサーバーを持っていますが、ハードドライブが壊れている場合、データが失われ、今の指導者は、他のマシン上で定期的にスケジュールされたバックアップデータを行うことをお願いします。次のような要件があり

、夜00時に毎日、全体のパッケージ裏打ちされたWebアプリケーションディレクトリを、などNFSサーバnfs01上とバックアップサーバのバックアップでバックアップを保存するためにrsyncコマンドプッシュを通じて(バックアップアイデアはローカルIPアドレス+日付でパッケージ最初に、その後のrsyncを使用することができます)バックアップサーバにプッシュ。


次のように具体的な要件は次のとおりです:

1)NFSサーバnfs01とバックアップサーバのバックアップのバックアップディレクトリはすべて/バックアップしなければならない;
2)NFSサーバーのサイトディレクトリは(は/ var / WWW / HTML)を想定している;
3)NFSサーバーのスクリプトディレクトリが(/サーバーであると想定されます/スクリプト);
4)NFSサーバサイトは、ディレクトリ(/アプリケーション/ログ)ログを想定している;
5)NFSサーバー、個人プロファイルディレクトリ・パス(/etc/rc.d/rc.localの);
6)NFSファイルサーバタイマータスクのパス(は/ var /スプール/クーロン/ルート)である
7) 、パッケージファイルまたはディレクトリ(図2-6バーの上の)バックアップサーバのバックアップにプッシュされる。8)
7日のみNFSサーバのローカルバックアップを保持し;
9)バックアップサーバ検査結果の管理者のメールボックスへの通常のバックアップと日次バックアップの結果である;
10)毎週土曜日サーバーのデータをバックアップするためには、バックアップの他の180日間のみバックアップ、予約されています。

 

================================================され、次の答え================================================= ==========================

まず、ホストネットワークパラメータ

NIC NICホスト名のeth0 eth1の使用
バックアップ10.0.0.41 172.16.1.41 rsyncサーバ
10.0.0.31 172.16.1.31 NFSストレージ・サーバー・クライアントnfs01

第二に、バックアップサーバの展開を開始

1、rsyncサーバ:

(1)rsyncのソフトウェアがインストールされている確認します。

rsyncの-qa [ルート@バックアップ〜]#回転数

rsyncの-3.0.6-12.el6.x86_64

(2)書類の作成をrsyncd.conf

######################## rsync_configstart ######################### ################################################## ############################

YWX 2019年3月20日で#created

#が起動しrsyncd.conf ##

#ユーザーは

UID = rsyncの

#グループ

GID = rsyncの

#プログラムによるセキュリティ設定は、

chroot環境を使用する= NO

#クライアント接続の

最大接続数= 200

#タイムアウト

タイムアウト= 300

#ファイルの場所プロセスID

がpid = /var/run/rsyncd.pidファイル

#プロセスがロックしていない

ロックファイルを= / VAR / RUN / rsync.lock

#ログファイルの場所の

ログファイル= /var/log/rsyncd.log

############################ ################コンテンツ上にモジュールの下に配置することができる、内容が同様にグローバルモジュール内に配置されてもよい############## ##################

[バックアップ]

#使用ディレクトリの

パス= /バックアップ/

#はエラーがある場合には無視され

、エラーの無視

#読み書き可能(trueまたはfalse)(はいまたはNO)

読み取りのみ= falseの

#は、リモートリストを防ぐ(リモートでサーバのものを見るためにではない)

リスト=偽

#IP許可

許可ホスト172.16.1.0/24 =

#禁止IPの

ホストが拒否= 0.0.0.0/32

#仮想ユーザ(ユーザ認証)

AUTH = rsync_backupユーザー

#ストアのユーザーのパスワードやファイルの

秘密ファイル= /etc/rsync.password

###### ############################################# rsync_configend__end #### ################################################## ###################################

 

(3)共有ディレクトリとrsyncのアカウントを作成し、rsyncのにディレクトリの所有者を変更します

[ルート@バックアップ〜]#useraddの-M -s / sbinに/ nologinにrsyncの
[ルート@バックアップ〜]#のMKDIR /バックアップ
[ルート@バックアップ〜]#chownコマンド-R rsync.rsync /バックアップ

(4)のRsyncサービスを起動し、起動するように設定されています

rsyncのサービスを開始し
ます。[root @バックアップ〜]#rsyncの--daemon
[ルート@バックアップ〜]#netstatの-lntup | grepをするのrsync
TCP 0 0 0.0.0.0:873 0.0.0.0:*がLISTEN 1264 / rsyncの
TCP 0 0 ::: 873 ::: * 1264 / RSがLISTEN
ブート/etc/rc.loaclに追加
のrsync --daemon

(5)rsyncの仮想アカウント名とパスワードを作成し、パスワードファイルのパーミッション600を与えます

[ルート@バックアップ〜]#エコー"rsync_backup:ywxking"> /etc/rsync.password
[ルート@バックアップ〜]#猫/etc/rsync.passwordの
rsync_backup:ywxking
[ルート@バックアップ〜]#chmodの600の/ etc / rsyncのみましょう。パスワード
[ルート@バックアップ〜]#LL /etc/rsync.password
-rw ------- 1つのルートルート21 3月20日10時40 /etc/rsync.password

NFS上の第三に、展開のRsyncクライアント

(1)rsyncのソフトウェアがインストールされている確認します。

rsyncの-qa [ルート@ nfs01〜]#回転数

rsyncの-3.0.6-12.el6.x86_64

 

(2)のみ(パスワードのみを含む)、パスワード・ファイルを作成する必要があり、そして600にパスワードファイルのアクセス権を与えます

[ルート@のnfs01〜]#エコー"ywxking"> /etc/rsync.password
[ルート@ nfs01〜]#chmodの600 /etc/rsync.password

(3)共有ディレクトリのバックアップを作成します

[ルート@のnfs01〜]#のMKDIR /バックアップ

(4)プッシュテストクライアント

[ルート@のnfs01バックアップ]#タッチywx {1..10}
[ルート@ nfs01バックアップ]#LLの
合計0
-rw-R - r--の1つのルートルート0 3月20日22:12 ywx1
-rw-r--のr--の1ルートルート0 3月20日午後09時12分ywx10
-rw-R - r--の1ルートルート0 3月20日午後09時12分ywx2
-rw-R - r--の1ルートルート0 3月20日午後09時12分ywx3
-rw-R - r--の1ルートルート0 3月20日22時12 ywx4
-rw-R - r--の1ルートルート0 3月20日22時12 ywx5
-rw-R - r--の1つのルートルート0 3月20日22時12分ywx6
-rw-R - r--の1ルートルート0 3月20日22時12分ywx7
-rw-R - r--の1つのルートルート0 3月20日22時12分ywx8
-rw-rを--r-- 1ルートルート0 3月20日22時12分ywx9

[ルート@ nfs01バックアップ]#rsyncの-avzP /バックアップ/ [email protected] ::バックアップ--passwordファイル=の/ etc / rsync.password
増分送信ファイルリスト
./
ywx1
(#1 XFERにチェック= 9/11)と0 100%0.00kB / sの午後12時00分00秒
ywx10
0 100%0.00kB / sの午後12時00分00秒(#2 XFERにチェック= 8 / 11)
ywx2
0 100%0.00kB / sの0時00分00秒(#3 XFERにチェック= 7/11)
ywx3
0 100%0.00kB / S 0時00分00秒(#4 XFER、にチェック= 6/11)
ywx4
0 100%0.00kB / sが夜12時00分00秒(#5 XFER、= 5/11)、チェック
ywx5
0 100%0.00kB / sの夜12時00分00秒(#6 XFER、対をチェック= 4/11)と
ywx6
0 100%0.00kB / S 0時00分00秒(#7 XFER、=にチェック3月11日)
ywx7
0 100%0.00kB / S 0時00分00秒(#8 XFER、チェック= 2/11)と
ywx8
0 100%0.00kB / sの午後12時00分00秒(#9 XFERにチェック= 1/11)と
ywx9
0 100%0.00kB / sの午後12時00分00秒(XFER位-チェック= 0/11)10、

462のバイトが201バイト1326.00バイト/秒を受け送信
合計サイズが0高速化が0.00であります

(5)nfs01サーバ包装スクリプトnfsbak.sh

Vimの/server/scripts/nfsbak.sh

#!/ binに/ bashの
エクスポートPATH =は/ usr / local / sbinにします。/ usr / local / binに:/ sbinに:/ binにします。/ usr / sbinにします。/ usr / binに:/ルート/ビン
から######変数が定義された
パス= /バックアップ
backup_server = 172.16.1.41
'のNR == 2 4} {印刷$' `:awkの-F "[] +" | IP =`の/ sbin / ifconfigコマンドのeth1の
監督IP} = {$ _ $(DATEをF_%W%+)

######ファイルやディレクトリが存在してバックアップする場合は、反対で/バックアップディレクトリにコピーされる
パス$ / $ DIR -pます。mkdir
[-fに/ var / spool / cron /根] && -rp CPに/ var / spool / cron /パスルート$ / $ DIR /
[-f /etc/rc.d/rc.localの] && CP -rpパス/etc/rc.d/rc.localの$ / DIR $ /
[-d /サーバ/スクリプト] && -rp CP /サーバ/スクリプトのパス$ / $ DIR /
[-dの/ var / HTML / WWW] && -rp CPの/ var / HTML / WWWパス$ / $ DIR /
[-d /アプリケーション/ログ] && -rp CP /アプリケーションは/ /パス$ / $ DIRをログに記録します
[-F、/ etc / sysconfig / iptables内] && -rp CP、/ etc / sysconfig / iptables内$パス/ DIR $ /

####### /バックアップディレクトリを入力すると、対応するディレクトリのファイルにパッケージ
CDの$パス

タール-zcf $を$ .tar.gzのパス/ $ {ディレクトリ}ディレクトリ


の完全#######梱包した後、ソースディレクトリの削除
RM -rfの$パス/ DIR $


バックアップサーバのテストを容易にするために、md5sumを検証情報を作成するために、#######をデータが完成するかどうか
は/ usr / binが/>ディレクトリ.tar.gzのパス$ / $ {}をmd5sumのIPの.txtのパス/のmd5sum $ {_} $


#######をバックアップサーバ検証値のmd5sumにパッケージ化されたファイルをプッシュします
パス-avz $ rsyncを/ rsync_backup @ $ {} :: BackupServerに、ファイルのバックアップ--password =の/ etc / rsync.passwordの
バックアップ以上の7日間を見つけるし、削除する#######
検索$パス/ -nameを" $ {IP} *「型F -mtime +7 | xargsのRM -rf

スケジュールされたタスク(6)NFSバックアップ

00 00 * * * / binに/ SHの/server/scripts/nfsbak.sh

 

第四に、バックアップサーバのバックアップのチェック結果は、管理者のメールボックスへの結果の正常な、毎日のバックアップです。

NFSサーバのバックアップファイルは、md5sumをしてきたので、ファイルのバックアップは正常であり、単に値のmd5sumのようなので

#!/ binに/ bashのの
輸出PATH =は/ usr / local / sbinにします。/ usr / local / binに:/ sbinに:/ binにします。/ usr / sbinにします。/ usr / binに:/ルートの/ bin
#####找出1天内的备份文件的にmd5sum校验和
MD5 = $(/ binに/見つける/バックアップ/ -type F -mtime -1 -name "のmd5sum _ *。TXT")

$のMD5での私は
ない
-c $のMD5をmd5sumを> / DEV /ヌル2>&1
md5jg = $(?$エコー)
[$ {md5jg} -eq 0]があれば、次に
-sメール[email protected] "$(日付+%F)をこれがバックアップOKです"

のメール- S "$(日付+%のF)。これは、バックアップの心配である" [email protected]
行わ


第五に、バックアップサーバ土曜日上のデータが予約されている、バックアップの他の180日しかバックアップします

#!/ binに/ bashのの
輸出PATH =は/ usr / local / sbinにします。/ usr / local / binに:/ sbinに:/ binにします。/ usr / sbinにします。/ usr / binに:/ルート/ binが
/バックアップを見つけて下さい!-name "* _6.tar.gz"!-name "のmd5sum *の_6.txt" -mtime 180型F | xargsのRM -rf

シックス・定期的なタスク、バックアップサーバー

##################################定时任务脚本############# #########################################
vimの/server/scripts/backup.sh

#!/ binに/ bashのの
輸出PATH =は/ usr / local / sbinにします。/ usr / local / binに:/ sbinに:/ binにします。/ usr / sbinにします。/ usr / binに:/ルート/ binに
MD5 = $(/ binに/バックアップ/見つける/型F -mtime -1 -name "のmd5sum _ *。TXT")

$のMD5で私のために
行う
-c $のMD5をmd5sumの>を/ dev / null 2>&1
md5jg = $($?エコー)
であれば[$ {md5jg} -eq 0];次に
-sメール"$(日付+%F)これがOKバックアップです!" [email protected]
他の
メール-s "$(日付+%のF)これは、バックアップ心配です!!!" [email protected]
行わ

検索/バックアップを!-name "* _6.tar.gz"!-name "のmd5sum *の_6.txt" -mtime 180型F | xargsのRM -rf
################################################## ################################################## #
##############################定期的なタスク################# ########################################
00 00 * * * / binに/ SH /サーバー/スクリプト/ backup.sh


 

七、キー展開のrsyncをansible

1、ホストネットワークパラメータ:
ネットワークカードの使用のホストのIPアドレス
M01のeth1の172.16.1.61管理ホスト
backup01のeth1の172.16.1.41バックアップサーバ
nfs01 eth1の172.16.1.31 NFSサーバー

2、M01管理ホスト上の準備作業は:
(1)スクリプトのssh分布を書き込みますあなたはM01対話型ログオンのバックアップおよびNFSサーバ回避することができます
。#/ binに/ bashのを!
#sshを接続
PATH =は/ usr / local / sbinにエクスポートします。/ usr / local / binに:/ sbinに:/ binにします。/ usr / sbinに:/ USR / binに:/ルートの/ bin
RM -rf /root/.ssh/id_dsa
#####無料のインタラクティブなキー作成
SSH-keygenは-t dsaを-f -N /root/.ssh/id_dsa ""
yumをインストールします- sshpass Y
#####無料相互作用M01プッシュキー
41については、31がIPであるある

sshpass -p123456 SSH-コピー-ID -i /root/.ssh/id_dsa.pub「-o StrictHostKeyChecking = NO 172.16.1。$ IP「
DONE

(2)ansibleマウント
サーバーを:
yumのインストール-Y ansible
客户端:(可选)
YUM -y libselinux-のPythonをインストール

(3)编写のrsync剧本:rsync.yaml
========================== ================== rsync.yaml__start ============================= =================================
#commandのプレイブック

-ホスト:rsync_serverの
タスク:
-名前:STEP01:インストールrsyncの
YUM:名= rsyncの状態=インストール
-名前:STEP02:編集のrsync confファイルの
コピー:SRC =の/ etc / ansible / confに/ rsync_conf / rsyncd.conf DEST =の/ etc /
-名前:STEP03:rsyncのユーザーの作成
ユーザーを:名前= rsyncの状態=存在createhome =なしシェル= / sbinに/ nologinに
-名前:step04:認証ファイルの作成
コピー:SRC =の/ etc / ansible / confに/ rsync_conf / rsync.password DEST =の/ etc /モード= 600
-名前:step05 :バックアップディレクトリを作成します
ファイル:DEST = /バックアップ状態=ディレクトリの所有者= rsyncのグループ= rsyncを
-名前:step06:rsyncのサーバーの起動
シェルを:rsyncの--daemonはrsyncd.pid /実行/ =の/ varを作成します

-ホスト:rsync_client
タスク:
-名前:STEP01:認証ファイルの作成
600 = SRC =の/ etc / ansible / confに/ rsync_conf / rsync_client.password DEST =の/ etc / rsync.passwordモード:コピーを

============================================ rsync.yaml__end === ================================================== =========

 

(4)テストスクリプト

[ywx rsync_conf @ルート]#ansible-脚本-C /server/scripts/rsync_install.yaml

PLAY [rsync_server] ***************************************

TASK [収集の事実] ************************************
OK:[172.16.1.41]

TASK [STEP01:インストールのrsync] ***********************************
OK:[172.16.1.41]

TASK [STEP02:編集のrsync confファイル] ********************************
OK:[172.16.1.41]

TASK [STEP03:rsyncのユーザーを作成] ***********************************
OK:[172.16.1.41]

TASK [step04:AUTHファイルを作成] ************************************
OK:[172.16.1.41 ]

TASK [step05:バックアップディレクトリを作成] *********************************
OK:[172.16.1.41]

TASK [step06:rsyncのサーバを起動する] **********************************は
スキップ:[172.16.1.41]

PLAY [rsync_client] ***************************************

TASK [事実の収集] ************************************
OK:[172.16.1.7]
OK: [172.16.1.31]

TASK [STEP01:AUTHファイルを作成] ************************************
変更:[172.16.1.7 ]
[OK]:[172.16.1.31]

**************************************** RECAPを再生
172.16.1.31:OK = 2を変更= 0到達不能= 0 = 0失敗
172.16.1.41:OK = 6が変化= 0 = 0 = 0失敗した到達不能
172.16.1.7:OK = 2を変化= 1に到達不能= 0失敗= 0

 

3、キーを展開:

[ルート@ ywxのrsync_conf]#ansible・プレイブックの/server/scripts/rsync_install.yaml

 

八、起動スクリプトからのrsyncブート(オンライン検索)

制作服务启动脚本/etc/init.d/rsyncd
#/ binに/バッシュ!
#author:Mr.chenの
#1のchkconfig:35 13 91
#説明:これは、rsyncのサービス管理シェルスクリプトです
#ソース関数ライブラリ
/etc/rc.d/init.d/functions

(){開始し
たrsync --daemon
場合は[$を?-eq 0 -a `のps -ef | grepの-v grepの|はgrepのrsyncの|トイレ-l` -gt 0];その後、
アクション"rsyncは開始:"/ binに/真
睡眠1
他の
アクション"のRsyncを開始:"/ binに/偽
スリープ1
Fiを
}

停止(){
pkillはrsyncは、睡眠1; pkillコマンドのrsyncの
場合は[ `PS -ef |はgrep -v grepの|はgrep "のrsync --daemon" | WC -l` -lt 1];次に、
アクションが「停止rsyncを:「/ binに/真
睡眠1

"rsyncの停止:"アクションをtrueに/ binに/
。SLEEP 1
Fi回線
}

"$ 1"ケースで
スタート)
スタート;
;;
STOP)
; STOP
;;
|リスタートリロード)
STOP;
;スタート
;;
*)は
:$ {0 $」使い方をエコー「リロード} |再起動| STOPを|開始
;;
ESAC
許可ブート実行/etc/init.dディレクトリに起動スクリプト)6、および増加のxを追加し
ます。[root @バックアップ〜]#chmodの + Xの/ etc / initのを。 D / RSYNCD
[バックアップルート@〜] STOP#が/etc/init.d/rsyncd
終了
[バックアップルート@〜]#が起動し/etc/init.d/rsyncd
[OK]:rsyncの開始
[バックアップルート@〜]#をchkconfigをON RSYNCD
[ルート@バックアップ〜]#chkconfigを--list | grepをrsyncを
0 RSYNCD:閉じる1:閉じる2:3を有効:4を有効にする:有効6:オフ5を有効にします

 

おすすめ

転載: www.cnblogs.com/yaokaka/p/11620766.html