dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:3044回复:3

使用rsnapshot 备份数据

楼主#
更多 发布于:2014-03-20 10:26
使用rsnapshot 备份数据

一 环境

1.操作系统
head -n1 /etc/issue
    
Red Hat Enterprise Linux Server release 6.2 (Santiago)
2.角色与ip
server1(rsync)
ip:172.27.233.41
备份路径:/data/log/
    
server2(rsync)
ip:172.27.233.43
备份路径:/data/log/
    
client(rsnapshot)
ip:172.27.233.44
备份目录:/backup/rsnapshot/
3.流程图

图片:rsnapshot.png




二 部署
1服务端
1.1安装rsync
yum install rsync
1.2配置rsync
cat > /etc/rsyncd.conf << EOF
log file = /var/log/rsyncd.log        
pid file = /var/run/rsyncd.pid        
lock file = /var/run/rsync.lock       
max connections = 100                 
use chroot = no                       
uid = nobody                          
gid = nobody                                                 
list = no                             
    
    
[log]                           
path = /data/stat/         
comment = rsnapshot                   
read only = yes                    
hosts allow = 172.27.233.0/24
EOF
1.3启动 rsync 服务
rsync --daemon
1.4验证 rsync 服务
lsof -i :873
    
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
rsync   27191 root    3u  IPv4 126435176      0t0  TCP *:rsync (LISTEN)
rsync   27191 root    5u  IPv6 126435177      0t0  TCP *:rsync (LISTEN)
1.5开机启动
echo -e '#rsync
/usr/bin/rsync --daemon \n' >> /etc/rc.local

2客户端
2.1安装rsnapshot
wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum makecache
yum install rsnapshot
2.2配置rsnapshot
cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
vim /etc/rsnapshot.conf
PS:根据实际情况修改配置文件,例如示例配置文件:
awk '! /^($|#)/' /etc/rsnapshot.conf
    
config_version    1.2
snapshot_root    /backup/rsnapshot/
cmd_cp        /bin/cp
cmd_rm        /bin/rm
cmd_rsync    /usr/bin/rsync
cmd_ssh    /usr/bin/ssh
cmd_logger    /usr/bin/logger
cmd_du        /usr/bin/du
interval    hourly    1
verbose        2
loglevel    3
logfile    /var/log/rsnapshot
lockfile    /var/run/rsnapshot.pid
exclude_file    /backup/rsnapshot/exclude
backup    rsync://172.27.233.41/log/ 172.27.233.41/    rsync_short_args=-av, rsync_long_args=--delete --numeric-ids --relative --delete-excluded --bwlimit=200 --exclude-from=/backup/rsnapshot/exclude
backup    rsync://172.27.233.42/log/ 172.27.233.42/
backup    rsync://172.27.233.43/log/ 172.27.233.43/
PS:注意配置文件区分空格与tabs,tabs使用ctrl +v之后再按tab键,这样会输入一个tab.

2.3设置排除规则
mkdir -p /backup/rsnapshot/
    
vim /data/rsnapshot/exclude
    
- *.stat
- *.list
- *.log
PS:根据实际情况更改排除规则,可以多个规则,每个规则一行

2.4检查rsnapshot 配置文件
rsnapshot configtest
    
Syntax OK
PS:收到"Syntax OK" 表示语法正确其它则错误。


三 测试
1.运行rsnapshot
-t 参数,可以查看执行过程,但是并不实际执行。
rsnapshot  -t hourly
-V 参数,执行并显示详细模式。
rsnapshot -V hourly
2.查看备份文件
ll /backup/rsnapshot/hourly.0


四 其它
1.设置crontab任务计划
vim /etc/cron.d/rsnapshot
    
*/30 * * * * root /usr/bin/rsnapshot hourly
PS:注意上面的任务计划每半小时执行一次,请根据同步的文件大小,以及网络状况,调整任务计划时间间隔

参考
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2014-03-20 15:25
rsync 相关

rsync 相关参数参考
http://ywwd.net/read-206
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
板凳#
发布于:2014-03-25 21:33
不删除文件

编辑rsnapshot.conf
backup    rsync://172.27.233.41/log/    172.27.233.41/    rsync_short_args=-av, rsync_long_args=--numeric-ids --relative --bwlimit=40960 --exclude-from=/data/rsnapshot/exclude --timeout=8
其实就是更改rsync 参数,相比少了 --delete 等参数,其中
rsync_short_args 表示短参数 比如 -a -v 等
rsync_long_args  表示长参数 比如 --bwlimit --timeout 等
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
地板#
发布于:2017-01-12 15:14
使用 rsync rsnapshot 备份 mysqlbinlog 日志
环境
CentOS 6.7 amd64
mysql 5.6.x
mysql 开启binlog 并 配置 rsync server

目标
在每天 mysqldump 定时逻辑备份的基础上,对 mysqlbinlog 进行增量备份
rsnapshot 每30分同步数据,数据增量保存,只增加不删除

文件状态
stat mysql-bin.000106
  File: `mysql-bin.000106'
  Size: 1046287047    Blocks: 2043544    IO Block: 4096   regular file
Device: 805h/2053d    Inode: 12058978    Links: 1
Access: (0660/-rw-rw----)  Uid: (  500/   mysql)   Gid: (  500/   mysql)
Access: 2016-02-29 17:16:11.951151540 +0800
Modify: 2016-02-29 17:16:11.950151540 +0800
Change: 2016-02-29 17:16:11.950151540 +0800

测试
rsync -avP --bwlimit=9000 rsync://mysql-server-ip/binlog/mysql-bin.000106  .
receiving incremental file list
mysql-bin.000106
  1046287388 100%   15.58MB/s    0:01:04 (xfer#1, to-check=0/1)

sent 226483 bytes  received 185539 bytes  5844.28 bytes/sec
total size is 1046287388  speedup is 2539.40

验证
mysql rsync 服务日志
2016/02/29 17:17:58 [20417] connect from elk01.xyc.ltd
2016/02/29 17:17:58 [20417] rsync on binlog/mysql-bin.000106 from elk01.xyc.ltd
2016/02/29 17:17:58 [20417] building file list
2016/02/29 17:19:08 [20417] sent 185555 bytes  received 226484 bytes  total size 1046287388

#
游客

返回顶部