1、構(gòu)建環(huán)境:
主機(jī)名? ? ? ? ? ? ? ?IP
rsync? ? ? ? ? ?192.168.1.170
web01? ? ? ? ?192.168.1.171
web02? ? ? ? ? 192.168.1.172
2祖搓、項(xiàng)目需求
1)所有服務(wù)器的備份目錄必須都為/backup? ?
2)所有服務(wù)器的腳本目錄必須都為/server/scripts??
3)Web服務(wù)器保留打包后的7天的備份數(shù)據(jù)即可(本地留存不能多于7天,因?yàn)樘嘤脖P(pán)會(huì)滿)??
4)備份服務(wù)器上,保留每周一的校驗(yàn)結(jié)果文件湖苞,其它要保留6個(gè)月的數(shù)據(jù)副本拯欧。? ? ? ? ? ?
5)備份服務(wù)器上要按照備份數(shù)據(jù)服務(wù)器的內(nèi)網(wǎng)IP為目錄保存?zhèn)浞荩瑐浞莸奈募凑罩鳈C(jī)财骨、ip镐作、時(shí)間名字保存。
6)需要確保備份的數(shù)據(jù)盡量完整正確隆箩,在備份服務(wù)器上對(duì)備份的數(shù)據(jù)進(jìn)行檢查该贾,把備份的成功及失敗結(jié)果信息發(fā)給系統(tǒng)管理員郵箱中。
1捌臊、scripts服務(wù)端的配置
[root@localhost ~]# hostnamectl set-hostname rsync
[root@localhost ~]# bash
[root@rsync ~]# mkdir -p /server/scripts
[root@rsync ~]# cd /server/scripts
[root@rsync scripts]# vim rsync_install.sh
#!/bin/bash
#1杨蛋、安裝軟件包
yum install -y rsync &> /dev/null
#2、創(chuàng)建用戶
useradd -M -s /sbin/nologin rsync
#3理澎、創(chuàng)建備份目錄
mkdir -p /backup
chown -R rsync.rsync /backup
#4逞力、修改配置文件
cat >/etc/rsyncd.conf<<EOF
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
[backup]?
comment = welcome to nfzlback
path = /backup
EOF
#5、創(chuàng)建認(rèn)證文件
echo 'rsync_backup:passwd' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
#6糠爬、啟動(dòng)服務(wù)
systemctl start rsyncd &> /dev/null
systemctl enable rsyncd &> /dev/null
systemctl status rsyncd &> /dev/null
echo "rsync start success"
scripts客戶端的配置
[root@web01 ~]# mkdir -p /server/scripts
[root@web01 ~]# vim /server/scripts/rsync_backup.sh
#!/bin/bash
#1寇荧、安裝軟件包
yum install -y rsync
#2、定義變量
Host=$(hostname)
Ip=$(ifconfig ens33 | awk 'NR==2{print $2}')
Date=$(date +%F)
BackupDir=/backup
Dest=${BackupDir}/${Host}_${Ip}_${Date}
#3执隧、創(chuàng)建備份目錄
mkdir -p $Dest
#4揩抡、收集需要備份的文件
#Sysconfig backup
tar -czvf $Dest/sysconf.tar.gz /etc/fstab /etc/hosts
#Log backup
tar -czvf $Dest/log.tar.gz /var/log/messages /var/log/secure
#5户侥、校驗(yàn)
md5sum $Dest/* >$Dest/backup_check_$Date
#6、將備份目錄推動(dòng)到rsync服務(wù)端
Rsync_Ip=192.168.1.170
Rsync_user=rsync_backup
Rsync_Module=backup
export RSYNC_PASSWORD=passwd
rsync -avz $Dest $Rsync_user@$Rsync_Ip::$Rsync_Module
#7捅膘、刪除7天備份目錄
find $BackupDir -type d -mtime +7 | xargs rm -rf?
郵件通知管理員
yum install -y mailx -y
vim /etc/mail.rc? ? #最后一行插入
set from=373370405@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=373370405@qq.com
set smtp-auth-password=授權(quán)碼
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
\\校驗(yàn)數(shù)據(jù)并發(fā)送郵件給管理員
[root@rsync ~]#?vim /server/scripts/check_backup.sh
#!/bin/bash
#1添祸、定義變量
Path=/backup
Date=$(date +%F)
#2、查看flag文件寻仗,并對(duì)對(duì)文件進(jìn)行校驗(yàn),然后將校驗(yàn)的結(jié)果保存至result_時(shí)間
find $Path/*_${Date} -type f -name "backup_check*"|xargs md5sum -c >$Path/result_${Date}
#3刃泌、將校驗(yàn)結(jié)果發(fā)送郵件給管理員
mail -s "Rsync Backup log" 373370405@qq.com <$Path/result_${Date}
#4、刪除超過(guò)7天的校驗(yàn)結(jié)果文件署尤,刪除超過(guò)180天的備份數(shù)據(jù)文件
find $Patj -type f -name "result*" -mtime +7 | xargs rm -rf
find $Patj -type f -mtime +180 | xargs rm -rf
寫(xiě)計(jì)劃任務(wù)
00 01 * * * /bin/bash /server/scripts/rsync_back.sh &> /dev/null