您好,登錄后才能下訂單哦!
?
?
前方Web Server的數據存放在NFS server,NFS Server定時監控數據,數據變動時自動同步至rsync服務器上,在rsync服務器上存放著 Web Server的數據文件、以及各服務器的配置文件。Web Server的數據均在NFS、rsync。
?
上機實戰
?
???????? 某公司里有一臺Web服務器,里面的數據很重要,如果硬盤壞了,數據會丟失,現在領導要求把數據備份,這樣Web服務器數據丟失可以進行恢復。
需求:
???????? 每天晚上00點整在Web服務器A上打包備份系統配置文件、網站程序目錄及訪問日志并通過rsync命令推送到服務器B上備份保留(備份思路可以是現在本地按日志打包,然后再推到備份服務器B上)。
問題一、實現把Web服務器A數據備份到服務器B
?
具體要求:
1)? Web服務器A和備份服務器B的備份目錄必須都為/backup
2)? 系統配置文件包括但不限于:
a)???????? 定時任務服務的配置文件(/var/spool/cron/root)
b)???????? 開機自啟動的配置文件(/etc/rc.local)
c)???????? 日常腳本的目錄(/server/scripts)
d)???????? 防火墻iptables的配置文件(/etc/sysconfig/iptables)
e)???????? 思考還有什么需要備份
3)? Web服務器站點目錄假定為(/var/html/www)
4)? Web服務器A訪問日志路徑假定為(/app/logs)
5)? Web服務器保留打包后的7天的備份數據即可(本地留存不能多于7天,因為太多硬盤會滿),備份服務器B上要保留6個月的數據副本。
6)? 備份服務器B上要按照備份數據服務器的IP為目錄保存,打包的文件按照時間名字保存。
實現:
1.B服務器配置rsync服務端
?
uid=rsync
gid=rsync
use chroot = no
max connections = 2000
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 = 192.168.24.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#############################
[backup]
comment = backup server
path=/backup
?
創建rsync用戶 傀儡賬號 沒有家目錄
useradd rsync –s /sbin/nologin –M
創建/backup目錄
Mkdir /backup
創建rsync.password密碼文件
Echo “rsync_backup:oldboy”>/etc/rsync.password
Chmod 600 /etc/rsync.password
Rsync –daemon 開啟測試能否正常工作
Rsync –daemon
加入開機自啟動
echo “rsync --daemon”>>/etc/rc.local
?
檢查能否傳輸
rsync -avz /tmp/backup/ rsync_backup@192.168.24.32::backup
?
2.測試備份文件
a)???????? 定時任務服務的配置文件(/var/spool/cron/root)
b)???????? 開機自啟動的配置文件(/etc/rc.local)
c)???????? 日常腳本的目錄(/server/scripts)
d)???????? 防火墻iptables的配置文件(/etc/sysconfig/iptables)
e)???????? 思考還有什么需要備份
7)? Web服務器站點目錄假定為(/var/html/www)
8)? Web服務器A訪問日志路徑假定為(/app/logs)
?
把a-d打包,把7,8分別打包7,8有可能數據很大所以要單獨打包
mkdir /backup/"`ifconfig ens192|awk -F '[ :]+' 'NR==2 {print $3}'`_$(date +%F)"
cp /etc/rc.local /backup/192.168.24.21_2019-11-14/rc.local_$(date +%F)
其他的文件以這種格式復制
%文件名_%日期
寫成sh腳本:
[root@lnmp01 /]# vi backup.sh
IP=$(ifconfig ens192|awk -F '[ :]+' 'NR==2 {print $3}')
Path="/backup/$IP."
?
[ ! -d /backup/$IP ] && mkdir /backup/$IP -p
?
#!/bin/sh
tar zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables /server/scrips
tar zcf $Path/log_$(date +%F).tar.gz /app/logs/
?
#backup to server
rsync -avz /backup rsync_backup@192.168.24.32::backup --password-file=/etc/rsync.password
?
#del
find /backup -type f -name "*.tar.gz" -mtime +7|xargs rm -f
?
制定定時任務:
[root@lnmp01 backup]# crontab -l
?
#####
00 00 * * * /bin/sh /server/scrips/backup.sh &> /dev/null??
?
在服務端制定保留6個月的數據的定時任務
?
[root@localhost ~]# vi /server/scrips/backupdel.sh
/bin/find /backup -type f -name "*.tar.gz" -mtime +180|xargs rm –f
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
#####
00 00 * * * /bin/sh /server/scrips/backupdel.sh
?
通過添加md5校驗值確定文件完整性
[root@lnmp01 backup]# find /backup/ -type f -name "*$(date +%F).tar.gz"|xargs md5sum > /backup/flag_$(date +%F)
?
使用-c參數測試文件是否完整
[root@lnmp01 backup]# md5sum -c flag_2019-11-19
?
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。