1)要求:
1.领导要求每天00点整备份N台Web服务器内的重要数据,包括备份系统配置文件,网站程序目录,访问日志,并通过rsync命令推送到服务器B上保留,:
备份目录以IP保存,打包的文件按照时间名字保存
2.Web 服务器保留打包后7天的备份数据即可,备份服务器保存6个月的数据
2)实施
第一步:搭建起rsync服务备份及测试成功
服务器端:
1.关闭防火墙和selinux
service iptables stop
setenforce 0
2.安装rsync
yum install rsync -y
3.编辑/etc/rsyncd.conf
#rsync_config______________start
#created by ZhangDejin
##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
[oldboy]
path = /oldboy/
ignore errors
read only = false
list = false
hosts allow = 192.168.200.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.passwd
#rsync_config__________end
4.配置rsync用户及服务器验证用的用户和密码文件
useradd rsync
mkdir /backup
echo "rsnyc_backup:haha123" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
注意:密码文件权限一定不高于600,否则服务会报错
5.启动rsync服务
rsync --daemon
客户端;
yum install rsync -y
echo "haha123" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
测试备份:
rsync -avz /backup/ rsync_backup@192.168.200.128::backup --password-file=/etc/rsync.passwd
sending incremental file list
./
aa
sent 72 bytes received 30 bytes 204.00 bytes/sec
total size is 0 speedup is 0.00
第二步:实现本地打包备份脚本开发
1.编写脚本backup.sh
#!/bin/bash
ip=$(ifconfig eth1 |sed -n '2p'|awk -F "[ :]+" '{print $4}')
[ ! -d /backup/$ip ] && mkdir -p /backup/$ip
cd /backup/$ip
/bin/tar zcf bak_$(date +%F).tar.gz /var/www/html /etc/rc.local /server/scripts/ /etc/sysconfig/iptables /var/spool/cron/root /app/logs/
/usr/bin/rsync -az /backup/ rsync_backup@192.168.200.128::backup --password-file=/etc/rsync.passwd
find /backup -type f -name "*.tar.gz" -mtime +7 |xargs rm -f
2.测试脚本
3.添加定时任务
echo "00 00 * * * /bin/sh /server/scripts/bak.sh >/dev/null 2>&1" >> /var/spool/cron/root
4.在服务器端添加定时任务
echo "00 00 * * * /bin/find /backup/ -type d -name "192.168.1.*" -mtime +180 |xargs rm -f
只检索192.168.1.0的目录,优化find的检索速度
v