rsync全网备份项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync全网备份项目相关的知识,希望对你有一定的参考价值。

rsync全网备份项目

具体要求:
1,所有服务器(定时任务,开机自启动,日常脚本目录,防火墙配置文件),tar包到/backup目录,再推送到备份服务器
2,web服务器站点tar包到/backup目录(假定为:/var/www/html/),再推送到备份服务器,
3,web服务器访问日志tar包到/backup目录(假定为:/var/log/),再推送到备份服务器
4,所有本地tar包保留时间为7天,备份服务器上保留6个月
5,备份服务器上按照备份数据的主机名+ip为目录的形式保存,要求所有tar包按时间名保存

#服务器配置
[[email protected]]# yum -y install rsync

[[email protected] yum.repos.d]# cat /etc/rsyncd.conf
#rsync_config
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
[backup]
path = /backup
ignore errors
read only = false
list = false
hosts allow = 192.168.44.0/24
hosts deny = 0.0.0.0/32
auth users = rsync
secrets file = /etc/rsync.password

[[email protected] ~]# useradd rsync -s /sbin/nologin -M #创建用户,不登录系统
[[email protected] ~]# rsync --daemon #启动rsync服务

[[email protected] ~]# mkdir /backup #创建共享目录
[[email protected] ~]# chown -R rsync.rsync /backup/ #权限给rsync
[[email protected] ~]# chmod -R 755 /backup #设置目录权限

[[email protected] ~]# echo "rsync:yehaixiao" /etc/rsync.password #创建密码文件
[[email protected] ~]# chmod 600 /etc/rsync.password #设置文件的权限

[[email protected] ~]#mkdir -p /srv/scripts/
[[email protected] ~]#mkdir -p /srv/bak-erroe-log/

[[email protected] /]# /etc/init.d/postfix start
[[email protected] /]# chkconfig postfix on

#服务器脚本内容
[[email protected] scripts]# cat checkbak.sh #md5sum验证数据,并发邮件
#/bin/sh
find /backup/ -type f -name "flag_$(date +%F).txt" |xargs md5sum -c |grep FAILED >> /srv/bak-erroe-log/erroe$(date +%F).log

mail -s "$(date +%U%T) bakcup" root < /srv/bak-erroe-log/erroe$(date +%F).log

[[email protected] scripts]# cat 180daydel.sh #删除备份服务器上备份目录,超过180的tar.gz包
#/bin/sh
find /backup/ -type f -name "*.tar.gz" -mtime +180 |xargs rm -f

[[email protected] scripts]# crontab -l
/5 /usr/sbin/ntpdate -u m01 >/dev/null 2>&1
00 00
/bin/sh /srv/scripts/checkbak.sh >/dev/null 2>&1
00 00 * /bin/sh /srv/scripts/180daydel.sh >/dev/null 2>&1

#客户端配置
[[email protected] ~]# yum install rsync -y
echo "yehaixiao" >/etc/rsync.password #“yehaixiao”为密码
[[email protected] ~]# chmod 600 /etc/rsync.password #设置文件的权限
[[email protected] ~]# mkdir /backup #本地用来打包的目录,然后rsync推送

#客户端rsync推送命令
rsync -avz --password-file=/etc/rsync.password /backup/ [email protected]::backup

#客户端脚本内容
[[email protected] scripts]# cat backup.sh
#!/bin/sh
#backup
hostn=$(hostname)
ip=$(grep -i ipaddr /etc/sysconfig/network-scripts/ifcfg-eth0|awk -F "=" ‘{print $2}‘)
Path="/backup/$hostn-$ip"
mkdir -p /$Path

#tar
tar zcf /$Path/www$(date +%F).tar.gz /var/www/html/ &&\
tar zcf /$Path/log$(date +%F).tar.gz /var/log/ &&\
tar zcf /$Path/conf$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables /srv/scripts/ &&\

find /$Path/ -type f -name "$(date +%F).tar.gz"|xargs md5sum > /$Path/flag_$(date +%F).txt
rsync -avz --password-file=/etc/rsync.password /backup/ [email protected]::backup
find /backup/ -type f -name "
.tar.gz" -mtime +7 |xargs rm -f

[[email protected] scripts]# crontab -l
/5 /usr/sbin/ntpdate -u m01 >/dev/null 2>&1
00 00
/bin/sh /srv/scripts/backup.sh >/dev/null 2>&1

以上是关于rsync全网备份项目的主要内容,如果未能解决你的问题,请参考以下文章

公司实现全网备份项目:(rsync+定时任务)

Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案

项目-第六次全网备份上机考试

网站集群架构实战(LVS负载均衡Nginx代理缓存Nginx动静分离Rsync+Inotify全网备份Zabbix自动注册全网监控)--技术流ken

基础全网备份项目解决方案

linux运维架构之路-全网备份项目方案