1. 程式人生 > >rsync---全網備份---實現步驟

rsync---全網備份---實現步驟

服務器 防火墻 server 系統管理員 配置文件




具體要求如下

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]
/* */ [email protected]/etc/ssh/sshd_config /etc/init.d/sshd reload


一、服務端配置


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---全網備份---實現步驟