rsync实现文件备份全攻略

简介

rsync=remote sync,即远程数据同步备份工具,最大的优势就是快速

特性

优势

工作模式

常用使用选项一级

-n:# 测试指令,在不确定命令能否能按照意愿执行时,务必要先进行测试-v:–verbose # 详细输出模式-q:–quiet # 静默模式-c:–checksum # 开启校验功能,强制对文件传输进行校验-r:–recursive # 递归复制-a:–archive # 归档,保留文件的原有属性,等同于-rlptgoD,一般都使用此选项-p:perms # 保留文件的权限-t:times # 保留文件的时间戳,很重要,保持源端文件和目的端文件的mtime一致能避免重复同步问题-l:links # 保留文件的符号链接-g:group # 保留文件的属组-o:owner # 保留文件的属主-D:–devices # 保留设备文件

注:对-r选项的重点解释

常用使用选项二级

-e ssh # 表示使用ssh协议作承载(rsync不具备加密功能)-z # 对文件压缩后传输–progress # 显示每个文件传输进度条–stats # 显示传输文件的统计信息–existing # 不同步新文件,只同步已存在目的端的文件–ignore-existing # 不更新已存在文件,只同步新文件–delete # 目的端删除源端不存在的文件,即保持和源端一致–delete-before # 默认删除策略,同步前删除目的端文件–delete-after # 删除策略,同步后删除目的端文件–delete-excluded # 专门指定需在目的端删除的文件,后跟–exclude选项–exclude=PATTERN # 源端匹配PATTERN模式的文件,屏蔽其同步–exclude-from=FILE # 从文件中读取PATTERN

配置rsync以daemon方式运行

设定rsync服务器端

安装并启动xinetd

# 安装程序yum -y install xinetd rsync# 配置文件设置# vi /etc/rsyncd.conf# Global Settingsuid = nobody# 运行rsync的用户gid = nobody# 运行rsync的组use chroot = no# 关闭chrootmax connections = 2# 最大连接数strict mode = yes# 开启对密码文件权限的严格限制,不能被除rsync运行用户以外的用户访问,即密码文件权限一般得是600pid file = /var/run/rsyncd.pid # pid文件log file = /var/log/rsyncd.log # 日志文件# Directory Settings[mydata]# 对于备份目录的模块名,在同步时使用path = /mydata/data# 需备份的数据目录ignore errors = yes# 同步时,忽略错误read only = no# 非只读write only = no# 非只写hosts allow = 172.16.0.0/16# 访问控制,允许访问的来源IP段hosts deny = *# 访问控制,不允许访问的来源IP,此处*代表全部list = false# 不允许列出目录uid = root# 会覆盖global settings的相关配置gid = root# 同上auth users = jason# 允许同步数据的用户,在此只有一个jasonsecrets file = /etc/rsyncd.passwd# 密码文件目录

配置密码文件/etc/rsyncd.passwd

# 格式:username:password,# vi /etc/rsyncd.passwdjason:jason123chmod 600 /etc/rsyncd.passwd

配置服务启动

chkconfig rsync onservice xinetd start# 注:rsync被xinetd调用后监听在873/tcp端口

客户端配置

客户端也必须配置密码文件,但格式略有不同

格式:password# vi /etc/rsyncd.passwdjason123chmod 600 /etc/rsyncd.passwd

测试数据同步的用法

如果需要做周期性操作,则需要将命令写入crontab中:

# crontab -e*/5 * * * * /usr/bin/rsync -a –password-file=/etc/rsyncd.passwd jason@172.16.251.182::mydata /data &>/dev/null

高级应用:rsync+inotify实现数据实时同步

简介

原理说明

因为是发起rsync的主动同步,而且是推送(即PUSH)数据,只能是从rsync客户端向rsync服务器端推送数据,这点与rsync+crontab形式的从服务器端拉取(即PULL)数据不同,区别如下

具体部署

本文出自 “小小忍者” 博客,,请务必保留此出处

别想一下造出大海,必须先由小河川开始。

rsync实现文件备份全攻略

相关文章:

你感兴趣的文章:

标签云: