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、在备份服务器上面执行脚本,进行校验,校验结束后将结果发送至邮件
posted @ 2018-12-31 23:53  john5的博客  阅读(57)  评论(0)    收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css