rsync---全網備份---實現步驟
具體要求如下:
1)所有服務器的備份目錄必須都為/backup
2)要備份的系統配置文件包括但不限於:
a.定時任務服務的配置文件(/var/spool/cron/root)(適合web和nfs服務器)
b.開機自啟動的配置文件(/etc/rc.local)(適合web和nfs服務器)
c.日常腳本的目錄(/server/scripts)
d.防火墻iptables的配置文件(/etc/sysconfig/iptables)
e..............
3)Web服務器站點目錄假定為(/var/html/www)
4)Web服務器A訪問日誌路徑假定為(/app/logs)
5)Web服務器保留打包後的7天的備份數據即可(本地留存不能多於7天,因為太多硬盤會滿)
6)備份服務器上,保留每周一的所有數據副本,其它要保留6個月的數據副本。
7)備份服務器上要按照備份數據服務器的內網IP為目錄保存備份,備份的文件按照時間名字保存
8)*需要確保備份的數據盡量完整正確,在備份服務器上對備份的數據進行檢查,把備份的成功及失敗結果信息發 給系統管理員郵箱中
PS1="\[\e[32;1m\][\u@\h \W]\\$ \[\e[0m\]" >>/etc/bashrc ##小功能優化 sed -i.bak ‘s@#UseDNS [email protected]@g;s@^GSSAPIAuthentication [email protected]
一、服務端配置
01、查看服務器上有無rsync軟件
rpm -qa rsync
02、開始配置
vim /etc/rsyncd.conf uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = no list = no hosts allow =10.0.0.0/24 ##外網 -- 測試 用於沒有準備第二塊網卡 auth users = rsync_backup secrets file =/etc/rsync.password [backup] path = /backup
03、搭建rsync服務器需要的配置
①useadd -s /sbin/nologin -M rsync ②echo "rsync_backup:123456" >>/etc/rsync.password ③chmod 600 /etc/rsync.password ④mkdir -p /backup ⑤chown -R rsync.rsync /backup
04、啟動rsync-------####xinetd
ps -ef |grep rsync rsync --daemon ps -ef |grep rsync
05、開機自啟動rsync服務
echo "rsync --daemon" >>/etc/rc.local
二、客戶端配置
01、創建密碼文件
vim /etc/rync.password 123456 說明:客戶端存放密碼的文件路徑最後與服務端一致,密碼必須一致
02、更改密碼文件權限
chmod 600 /etc/rync.password ll /etc/rync.password
03、測試
rsync -avzP /etc/services [email protected]::backup --password-file=/etc/rsync.password
三、客戶端備份腳本的編寫
溫馨註釋:在遠程連接中,另外克隆一個窗口,進行操作,把測試好的命令復制到要寫的腳本文件當中;
01、創建/backup備份目錄
mkdir -p /backup/$(hostname -I |awk ‘{print $1}‘)
02、壓縮備份數據到/backup目錄中
cd / && tar zcfh /backup/$(hostname -I |awk ‘{print $1}‘)/ifconfig_backup_$(date +%F_week0%w).tar.gz var/spool/cron etc/rc.local server/scripts etc/sysconfig/iptables
03、推送備份目錄數據到rsync服務器--推送的必須能讓rsync服務端知道是誰進行推送的
rsync -az /backup/$(hostname -I |awk ‘{print $1}‘) [email protected]::backup --password-file=/etc/rsync.password
04、刪除7天以前的備份數據
find /backup/$(hostname -I) -type f -mtime +7 |xargs rm -f
05、對備份的數據進行驗證,加上相應的指紋信息
find /backup/$(hostname -I |awk ‘{print $1}‘)/ -type f -name "*$(date +%F_week0%name "*$(date +%F_week0%w).tar.gz" |xargs md5sum >/backup/$(hostname -I |awk ‘{print $1}‘)/falg_$(date +%F_week0%w).txt
06、腳本編寫
#! /bin/bash
IP=$(hostname -I |awk ‘{print $1}‘)
mkdir -p /backup/$IP &&\
#compress
cd / && tar zcfh /backup/$IP/ifconfig_backup_$(date +%F_week0%w).tar.gz var/spool/cron etc/rc.local server/scripts etc/sysconfig/iptables &&\
#check falg
find /backup/$IP/ -type f -name "*$(date +%F_week0%w).tar.gz" |xargs md5sum >/backup/$IP/falg_$(date +%F_week0%w).txt
#push info
rsync -az /backup/$IP [email protected]::backup --password-file=/etc/rsync.password
#clear info
find /backup/$IP/ -type f -mtime +7 |xargs rm -f
三、客戶端編寫定時任務
crontab -e #crontab-id:02-backup date 00 00 * * * /bin/bash /server/scripts/backup.sh &>/dev/null
四、服務器端腳本編寫
01、驗證傳輸數據完整性
cat falg_2017-05-06_week06.txt md5sum -c falg_2017-05-06_week06.txt
02、檢驗當天數據的完整性
[[email protected] 10.0.0.2]# md5sum -c falg_$(date +%F_week0%w).txt
03、檢驗優化
[[email protected] 10.0.0.2]# find /backup/ -type f -name "*$(date +%F_week0%w).txt"
04、把腳本推送到web服務器上
[[email protected] ~]# rsync -avzP /server/scripts/backup.sh [email protected]:/server/scripts/
05、web服務器推送到rsync服務器上
[[email protected] ~]# mkdir -p /app/logs /var/html/www [[email protected] ~]# sh /server/scripts/backup.sh
06、打包
cd / && tar zcfh /backup/$IP/www_backup_$(date +%F_week0%w).tar.gz var/html/www &&cd / && tar zcfh /backup/$IP/app_log_backup_$(date +%F_week0%w).tar.gz app/logs
07、郵箱配置
set from=
set smtp=smtp.qq.com
set smtp-auth-user=
set smtp-auth-password=
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/ &>/dev/null
本文出自 “12203165” 博客,請務必保留此出處http://12213165.blog.51cto.com/12203165/1922749
rsync---全網備份---實現步驟