需求:
每天晚上00:00講web服務(wù)器A上打包備份系統(tǒng)配置文件概龄,網(wǎng)站程序目錄及訪問日志,并用rsync整點(diǎn)推送到備份服務(wù)器B上
系統(tǒng)配置文件包括但不限于
a. 定時(shí)任務(wù)配置文件(/var/spool/cron/root)
b. 開機(jī)自啟配置文件(/etc/rc.local)
c. 日常腳本目錄(/server/scripts)
d. 防火墻iptables的配置文件(/etc/sysconfig/iptables)web服務(wù)器站點(diǎn)目錄假定為(/var/html/www)
web服務(wù)器A的訪問日志文件路徑假定為(/app/logs)
web服務(wù)器保留打包后7天的備份數(shù)據(jù)即可(本地保留不能多于7天朽合,因?yàn)樘嗟脑捰脖P會(huì)滿)做入,備份服務(wù)器B上要保留6個(gè)月的數(shù)據(jù)副本
備份服務(wù)器B上要按照備份數(shù)據(jù)服務(wù)器的IP為目錄保存缭嫡,打包文件按時(shí)間名字保存
第一個(gè)里程碑,rsync數(shù)據(jù)備份
- 配置rsync服務(wù)器
1.1 安裝rsync
yum install -y rsync
1.2 配置rsync配置文件
vim /etc/rsyncd.conf
加入如下配置
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/run/rsyncd.log
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup
1.3 配置密碼本文件
vim /etc/rsync.password
寫入設(shè)置的用戶名和密碼
rsync_backup:123456
1.4 修改密碼本文件的權(quán)限
chmod 600 /etc/rsync.password
1.5 創(chuàng)建備份目錄
mkdir /backup
1.6 創(chuàng)建虛擬用戶
useradd rsync -s /sbin/nologin -M rsync
1.6 修改備份目錄的權(quán)限所屬
chown rsync:rsync /backup
- 配置客戶端
2.1 安裝rsync
yum install -y rsync
2.2 創(chuàng)建備份目錄
mkdir /backup
2.3 創(chuàng)建密碼文件
vim /etc/rsync.password
寫入服務(wù)器端設(shè)置的密碼
123456
2.4 修改密碼文件權(quán)限
chmod 600 /etc/rsync.password
- 測試是否能同步
在客戶機(jī)執(zhí)行:
touch /backup/{1..9}
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
第二個(gè)里程碑惜颇,web本地實(shí)現(xiàn)打包腳本
ip=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
Path="/backup/$ip"
mkdir $Path
tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/
第三個(gè)里程碑皆刺,配置定時(shí)任務(wù)
配置web服務(wù)器的定時(shí)任務(wù)
mkdir -p /server/scripts
vim /server/scripts/backup.sh
寫入以下內(nèi)容
#!/bin/bash
IP=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
Path="/backup/$IP"
[ ! -d $Path ] && mkdir $Path -p
#backup
tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/
#to bak server
/usr/bin/rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
#delete
find /backup -type f -name "*.tar.gz" -mtime +7 | xargs rm -f
web服務(wù)器端加入計(jì)劃任務(wù)
crontab -e
00 00 * * * /bin/sh /server/scripts/backup.sh &> /dev/null
在backup服務(wù)器端編寫腳本刪除180天之前的壓縮文件
mkdir -p /server/scripts/
vim /server/scripts/del.sh
寫入以下腳本內(nèi)容
/bin/find /backup -type f -name "*.tar.gz" -mtime +180 | xargs rm -f
寫完后執(zhí)行以下看是否有錯(cuò)誤
sh /server/scripts/del.sh
加入計(jì)劃任務(wù)刪除180天之前的壓縮文件
crontab -e
00 00 * * * /bin/sh /server/scripts/del.sh
完成!!!
用md5檢測是否備份成功