環(huán)境: backup nfs01 web01 web02(系統(tǒng)版本為CentOS7.6)
backup 對(duì)其他三臺(tái)進(jìn)行全網(wǎng)備份狞悲,并校驗(yàn)備份文件內(nèi)容本慕,且發(fā)送郵件
nfs 共享目錄(靜態(tài)存儲(chǔ)共享) nfs 和backup 實(shí)施實(shí)時(shí)同步備份
1. 準(zhǔn)備環(huán)境
? 準(zhǔn)備四臺(tái)虛擬機(jī)丹锹。
? 需要使用兩張網(wǎng)卡:
??? 外網(wǎng)為10.0.0.0/24網(wǎng)段柬讨。(IP自定義)
??? 內(nèi)網(wǎng)為172.16.1.0/16網(wǎng)段表锻。(IP自定義)
? 主機(jī)名分別修改為backup nfs01 web01 web02
2. 各個(gè)服務(wù)器需要服務(wù)的安裝
服務(wù) | backup | nfs01 | web01 | web02 | 作用 |
---|---|---|---|---|---|
rsync | ● | ● | ● | ● | 有推拉功能,實(shí)現(xiàn)定時(shí)備份 |
nfs-utils | ○ | ● | ○ | ○ | 實(shí)現(xiàn)服務(wù)器中目錄共享 |
rpcbind | ○ | ● | ● | ● | 雙方rpc服務(wù)的通信獲取NFS的端口 |
sersync | ○ | ● | ○ | ○ | 實(shí)現(xiàn)實(shí)時(shí)備份 |
表格中"●"為需要安裝"○"為不需要安裝
? sersync下載地址威鹿,放置在我的云盤中:鏈接:https://pan.baidu.com/s/1jyjPuFBkeJgvlcV-5EHJ8A 提取碼:970q
? 下載之后放進(jìn)nfs的規(guī)范目錄下/server/tools/下剃斧,進(jìn)行解壓
? 解壓之后移動(dòng)到/下
3. backup對(duì)其他三臺(tái)進(jìn)行全網(wǎng)備份
?服務(wù)端配置:
??1)編輯/etc/rsync.conf 文件,提前備份
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[data]
path = /data/
?創(chuàng)建data模塊(上文腳本)
?2)創(chuàng)建rsync用戶 因?yàn)?etc/rsync.conf文件指定了uid忽你,giu需要
?3)創(chuàng)建模塊需要的目錄幼东,并給與目錄與文件中相同的uid,gid
?4)創(chuàng)建密碼文件科雳,在/etc/rsync.password 根蟹,給與文件600權(quán)限,只有屬主可以讀取
?5)在密碼文件中寫入————用戶名:密碼(破折號(hào)后為文本內(nèi)容)
?6)重啟rsync服務(wù)
?客戶端配置:
?1)配置密碼文件,與服務(wù)端相同的位置
?2)在密碼文件中寫入————服務(wù)端配置的密碼(破折號(hào)后為文本內(nèi)容)
? 可以再環(huán)境變量/etc/bashrc 中添加一行————export 大寫的服務(wù)器端配置的用戶名=服務(wù)端配置的密碼
?配置完成后驗(yàn)證
?使用rsync命令推送文件糟秘,查看是否成功简逮。
?rsync -avz 本地目錄 服務(wù)器端配置的用戶名@服務(wù)端IP地址::服務(wù)端配置的模塊名 --password-file=/etc/rsync.password
4. 并校驗(yàn)備份文件內(nèi)容,且發(fā)送郵件
?編寫腳本執(zhí)行定時(shí)任務(wù)尿赚,定是推送需要目錄散庶,并進(jìn)行驗(yàn)證
?客戶端推送
?在規(guī)范目錄/server/scripts/下創(chuàng)建腳本文件(文件名自定義),編輯腳本文件
#!/bin/bash
HOSTNAME=`hostname`
export RSYNC_PASSWORD=123456
mkdir -p /data/$HOSTNAME
#打包本地文件
cd / &&
tar zcf /data/$HOSTNAME/$(date +%F).tar.gz server/scripts &>/dev/null
#給打包的文件加指紋
find /data/$HOSTNAME/ -type f -name "*$(date +%F).tar.gz" |xargs md5sum >/data/$HOSTNAME/$(date +%F).flag
#推送目錄到服務(wù)端
rsync -az /data/$HOSTNAME/ rsync_backup@172.16.1.21::data/$HOSTNAME
#刪除7天之前的文件
find /data/$HOSTNAME -type f -mtime +7 -name "*.tar.gz" |xargs rm -f
?編寫腳本時(shí)需要注意:定時(shí)任務(wù)中可能不調(diào)用環(huán)境變量凌净,需要在文件中重新定義密碼
?完成后在服務(wù)端驗(yàn)證悲龟,是否收到推送的文件
?服務(wù)端驗(yàn)證
?在規(guī)范目錄/server/scripts/下創(chuàng)建腳本文件(文件名自定義),編輯腳本文件
#!/bin/bash
#刪除7天前的備份文件
find /data -type f -name "*.tar.gz" -mtime +7 |xargs rm -f
#驗(yàn)證發(fā)送的文件是否收到
find /data -type f -name "$(date +%F).flag" |xargs md5sum -c >/var/log/$(date +%F).txt
#郵箱發(fā)送
mail -s "$(date +%F)backup tuisongyanzheng" *********@qq.com </var/log/$(date +%F).txt
?手動(dòng)執(zhí)行腳本驗(yàn)證是否成功
?腳本完成后郵件可能會(huì)發(fā)送失敗冰寻,原因:
?1)郵件服務(wù)未開(kāi)啟
?啟動(dòng)郵件服務(wù)
?2)需要郵箱的授權(quán)碼
?郵箱授權(quán)碼须教,通過(guò)自己所使用郵箱,設(shè)置下面賬戶中開(kāi)啟郵箱各種服務(wù)斩芭,會(huì)生成一個(gè)授權(quán)碼轻腺。
?在腳本發(fā)送郵件的命令中加入授權(quán)碼或者
?在/etc/mail.rc中尾行添加
set from=郵箱地址
set smtp=所屬郵箱的地址
set smtp-auth-user=郵箱地址
set smtp-auth-password=授權(quán)碼
set smtp-auth=login
?把寫好的腳本都加入定時(shí)任務(wù)按照需求進(jìn)行執(zhí)行
5. nfs 共享目錄(靜態(tài)存儲(chǔ)共享)
服務(wù)端配置
?1)先開(kāi)啟rpcbind服務(wù),之后開(kāi)啟nfs服務(wù)(順序不可顛倒)划乖,都設(shè)置為開(kāi)機(jī)自啟動(dòng)
?2)使用rpcinfo 驗(yàn)證查看是否生成的注冊(cè)表
?3)編輯nfs的配置文件/etc/exports————共享目錄 客戶端的IP網(wǎng)段/子網(wǎng)掩碼(權(quán)限) (括號(hào)與網(wǎng)段之間不能有空格)
?4)改變共享目錄的屬主屬組為nfsnobody
?重啟nfs服務(wù)
客戶端配置
?1)客戶端開(kāi)啟rpcbind服務(wù)
?2)進(jìn)行共享目錄的掛載:
?mount -t nfs 服務(wù)端IP:服務(wù)端共享目錄 掛載點(diǎn)
?3)驗(yàn)證臨時(shí)掛載是否生效 df -h查看是否掛載上
?4)在開(kāi)機(jī)自動(dòng)掛載文件中永久掛載/etc/fstab
?服務(wù)端IP:服務(wù)端共享目錄 掛載點(diǎn) nfs defaults 0 0
?永久掛載需要nfs開(kāi)啟時(shí)才會(huì)實(shí)現(xiàn)贬养,否則客戶端的所有服務(wù)器開(kāi)機(jī)無(wú)法啟動(dòng)
?需要在永久掛載中defaults后面加soft或者h(yuǎn)srd,intr.就可以延遲啟動(dòng)(參數(shù)之間以","隔開(kāi))
?5)安全加優(yōu)化的掛載方式如下:
?mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 服務(wù)端IP:服務(wù)端共享目錄 掛載點(diǎn)
?6)深入掛載
?在服務(wù)端和客戶端創(chuàng)建相同uid,gid的用戶
?在服務(wù)端改變共享目錄的屬主屬組迁筛,與之前創(chuàng)建的用戶名相同
?實(shí)現(xiàn)其他匿名用戶查看 煤蚌,如果只是更改服務(wù)端,客戶端看到的文件都只有服務(wù)端屬主屬組的uid和gid细卧,而不顯示是什么用戶
6. nfs 和backup 實(shí)時(shí)同步備份
?需要nfs01 與backup之間實(shí)現(xiàn)實(shí)時(shí)共享
?上文已經(jīng)進(jìn)行了手動(dòng)推送
?1)配置/application/sersync/conf/confxml.xml
?修改需要的配置
?2)執(zhí)行命令 /application/sersync/bin/sersync -d