首页 小组 文章 搜索 用户

[数据同步]rsync简单备份

2020-06-23 08:38:57
0
219

本文章以rhel7.6为例 

IP规划

server端    192.168.1.14    hostname:backup

client端     192.168.1.15    hostname:nfs

需要达到的要求:

1、客户端每天凌晨3点在服务器打包备份,并且把备份好的通过rsync推至服务端

2、客户端备份的数据必须存放在需要ip跟日期的目录下,并且客户端本地只保留5天数据,以免浪费空间

一、server端

[root@backup ~]# yum install rsync -y                                       #安装包

[root@backup ~]# useradd -M -s /sbin/nologin rsync               #创建用户

[root@backup ~]# mkdir /backup                                               #创建备份目录,并修改所属

[root@backup ~]# chown -R rsync.rsync /backup

[root@backup ~]# vim /etc/rsyncd.conf                                     #修改配置文件

uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore error
read only =false
list = false
auth users =rsync_backup
secrets file = /appdata/rsync.passwd
####################################
[backup]
comment = welcome my backup
path = /appdata/backup
[root@backup ~]# echo "rsync_backup:1" > /backup/rsync.passwd    #创建认证文件
[root@backup ~]# chmod 600 /backup/rsync.passwd
[root@backup ~]# systemctl start rsyncd                                              #启动服务
[root@backup ~]# systemctl status rsyncd
二、cliten端
[root@nfs ~]# yum install rsync -y                                                        #安装包
#这里写了一个脚本,可以上传至每一台设备
[root@nfs ~]# vim  /server/script/rstnc_backup.sh
#!/bin/bash
#1、定义变量
Host=$(hostname)
IP=$(ifconfig ens33 |awk 'NR==2{print $2}')
Date=$(date +%F)
BackupDir=/appdata/backup
Dest=${BackupDir}/${Date}_${IP}_${Host}
#2、创建备份目录
mkdir -p $Dest
#3、收集需要的备份文件
tar -czPf $Dest/sysconfig.tar.gz  /etc/fstab /etc/hosts /var/spool/cron/root
tar -czPf $Dest/log.tar.gz   /var/log/messages /var/log/secure /var/log/cron 
tar -czPf $Dest/svrconf.tar.gz  /etc/rsyncd.conf
#4、校验信息的准确性
md5sum $Dest/* >$Dest/backupcheck_$Date
#6、推送到backup服务器端
Rsync_IP=192.168.1.15
Rsync_user=rsync_backup
Rsync_Module=backup
export RSYNC_PASSWORD=1
rsync -avz $Dest $Rsync_user@$Rsync_IP::$Rsync_Module
#7、保留5天文件
find $BackupDir -type d -mtime +4 | xargs rm -rf
[root@nfs ~]# vim /var/spool/cron/root
00 03 * * * /bin/sh /server/script/rstnc_backup.sh
#######################至此部署任务完成##################
测试
[root@nfs ~]# sh /server/script/rstnc_backup.sh
[root@nfs ~]# tree  /appdata
/appdata
└── backup
    ├── 2020-06-09_192.168.1.14_nfs
    │   ├── backupcheck_2020-06-09
    │   ├── log.tar.gz
    │   ├── svrconf.tar.gz
    │   └── sysconfig.tar.gz
    └── 2020-06-12_192.168.1.14_nfs
        ├── backupcheck_2020-06-12
        ├── log.tar.gz
        ├── svrconf.tar.gz
        └── sysconfig.tar.gz
#在backup上查看
[root@backup ~]# tree /appdata/
/appdata/
├── backup
│   ├── 2020-06-09_192.168.1.14_nfs
│   │   ├── backupcheck_2020-06-09
│   │   ├── log.tar.gz
│   │   ├── svrconf.tar.gz
│   │   └── sysconfig.tar.gz
│   └── 2020-06-12_192.168.1.14_nfs
│       ├── backupcheck_2020-06-12
│       ├── log.tar.gz
│       ├── svrconf.tar.gz
│       └── sysconfig.tar.gz
└── backup.passwd
###################测试完成#########################
评论