rsync全网备份
8.Rsync备份项目案例
推(上传)
拉(下载)
本地
远程(系统用户)
守护进程(虚拟用户)
定时备份
系统配置文件备份
1.系统配置
/etc/passwd
/etc/
/var/spool/cron/
/etc/rc.d/rc.local
/etc/fstab
2.用户自定义
/server/
3.服务相关配置
/etc/rsyncd.conf
4.日志类
/var/log
1.了解需要备份的目录
2.拷贝文件至指定的目录
/backup/nfs_172.16.1.31_20180724
/backup/nfs_172.16.1.31_20180725
/backup/nfs_172.16.1.31_20180726
3.直接使用rsync推送
rsync -avz /backup/ rsync_backup@172.16.1.41::backup
4.删除旧的数据,保留最近7天的数据
find
单纯推送备份文件
[root@nfs01 backup]# cat /server/scripts/backup_rsync.sh
!/bin/bash
1.定义变量
Path=/backup
Host=$(hostname)
Addr=$(ifconfig eth1|awk 'NR==2{print $2}')
Date=$(date +%F)
Dest=${Path}/${Host}${Addr}${Date}
2.检查目录是否存在
[ -d $Dest ] || mkdir -p $Dest
3.拷贝需要备份的文件至$Dest
system backup
cp -rp /etc/passwd /etc/fstab /etc/rc.d/rc.local /var/spool/cron $Dest/
user backup
cp -rp /server/ $Dest/
config backup
cp -rp /etc/rsyncd.conf $Dest/
4.推送至备份服务端
Rsync_User=rsync_backup
Rsync_Addr=172.16.1.41
Rsync_Module=backup
export RSYNC_PASSWORD=123456
rsync -avz $Path/ ${Rsync_User}@${Rsync_Addr}:😒{Rsync_Module}
5.保留本地最近7天的文件
find $Path/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} ;
打包并使用md5校验
[root@nfs01 backup]# cat /server/scripts/backup_rsync_md5.sh
!/bin/bash
1.定义变量
Path=/backup
Host=$(hostname)
Addr=$(ifconfig eth1|awk 'NR==2{print $2}')
Date=$(date +%F)
Dest=${Path}/${Host}${Addr}${Date}
2.检查目录是否存在
[ -d $Dest ] || mkdir -p $Dest
3.拷贝需要备份的文件至$Dest
cd / && \
system backup
tar czf $Dest/system.tar.gz etc/passwd etc/fstab etc/rc.d/rc.local var/spool/cron
user backup
tar czf $Dest/user.tar.gz server/
config backup
tar czf $Dest/config.tar.gz etc/rsyncd.conf
md5校验
md5sum $Dest/*.tar.gz > $Path/flag
4.推送至备份服务端
Rsync_User=rsync_backup
Rsync_Addr=172.16.1.41
Rsync_Module=backup
export RSYNC_PASSWORD=123456
rsync -avz $Path/ ${Rsync_User}@${Rsync_Addr}:😒{Rsync_Module}
5.保留本地最近7天的文件
find $Path/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} ;
服务端验证并发送邮件
[root@backup /]# yum install mailx -y
[root@backup /]# vim /etc/mail.rc
set from=552408925@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=552408925@qq.com
set smtp-auth-password=
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
[root@backup-41 ~]# cat /server/scripts/rsync_mail.sh
md5sum -c /backup/flag > /backup/mail.txt
mail -s "Rsync backup $(date +%F)" 552408925@qq.com </backup/mail.txt
判断后不会重复推送
[root@nfs01 backup]# cat /server/scripts/backup_rsync_md5.sh
!/bin/bash
1.定义变量
Path=/backup
Host=$(hostname)
Addr=$(ifconfig eth1|awk 'NR==2{print $2}')
Date=$(date +%F)
Dest=${Path}/${Host}${Addr}${Date}
2.检查目录是否存在
[ -d $Dest ] || mkdir -p $Dest
3.拷贝需要备份的文件至$Dest
cd / && \
system backup
[ -f $Dest/system.tar.gz ] || tar czf $Dest/system.tar.gz etc/passwd etc/fstab etc/rc.d/rc.local var/spool/cron
user backup
[ -f $Dest/user.tar.gz ] || tar czf $Dest/user.tar.gz server/
config backup
tar czf $Dest/config.tar.gz etc/rsyncd.conf
md5校验
[ -f $Path/flag ] || md5sum $Dest/*.tar.gz > $Path/flag
4.推送至备份服务端
Rsync_User=rsync_backup
Rsync_Addr=172.16.1.41
Rsync_Module=backup
export RSYNC_PASSWORD=123456
rsync -avz $Path/ ${Rsync_User}@${Rsync_Addr}:😒{Rsync_Module}
5.保留本地最近7天的文件
find $Path/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} ;
扩展
(强制同步远端数据至本地--保持一致)
rsync -avz --delete rsync_backup@172.16.1.41::backup /tmp/
(强制同步本地数据至远端--保持一致)
rsync -avz --delete /tmp/ rsync_backup@172.16.1.41::backup
作业
1、在nfs上执行备份脚本。推送至backup服务器
2、在web服务器上执行备份脚本。推送至backup服务器
3、在备份服务器上面执行脚本,进行校验,校验结束后将结果发送至邮件

浙公网安备 33010602011771号