您的位置:首页 > 运维架构 > Linux

linux 下 rsync 备份/同步文件

2016-03-18 16:02 831 查看
rsync 是一个远程同步工具,可以用来备份数据库,或者图片服务器的图片

系统:centos6.4

主服务器IP:192.168.1.136

备份服务器IP:192.168.1.137

一、安装

查看是否安装,没有安装就yum 安装一下

rpm -qa | grep rsync


yum install rsync


二、服务器端配置

开启

vim /etc/xinetd.d/rsync


修改 disable 的值为 no

加入自启动

chkconfig rsync on


为方便统一管理,将rsync 相关文件放在一个文件夹下【 rsyncd 】

mkdir /etc/rsyncd


创建 服务器端 配置文件

vim /etc/rsyncd/rsyncd.conf
内容/参数注释如下

# 用户和用户组
uid = root
gid = root

# 允许访问的客户机
hosts allow = 192.168.1.137
#拒绝访问的
#hosts deny = 0.0.0.0/32

# 能否切换目录
use chroot = no
# 最大链接数
max connections = 10

# pid文件的存放
pid file = /etc/rsyncd/rsyncd.pid
# max connections 参数的锁文件的存放位置
lock file = /etc/rsyncd/rsync.lock
# 使 rsync 服务器将传输操作记录到传输日志文件
transfer logging = true
log format = "%o %h [%a] %m (%u) %f %l"
##########################################################
#	可以使用的日志格式定义符如下所示:
#	%a - 远程IP地址
#	%h - 远程主机名
#	%l - 文件长度字符数
#	%p - 该次 rsync 会话的 PID
#	%o - 操作类型:”send” 或 “recv”
#	%f - 文件名
#	%P - 模块路径
#	%m - 模块名
#	%t - 当前时间
#	%u - 认证的用户名(匿名时是 null)
#	%b - 实际传输的字节数
#	%c - 当发送文件时,记录该文件的校验码
##########################################################
# 日志记录文件的存放
log file = /etc/rsyncd/rsyncd.log
# 欢迎信息
# motd file = /etc/rsyncd/rsyncd.motd

## 模块
# 模块名 自定义
[rsyncd]
# 指定文件目录所在位置 [必须]
path = /home/wwwroot/attachments
# 注释
comment = rsync files
# 指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误。
# 一般来说 rsync 在出现 I/O 错误时将跳过 –delete 操作,以防止因为暂时的资源不足或其它 I/O 错误导致的严重问题
ignore errors = true
# 指定是否允许客户上传文件。若为 true 则不允许上传;若为 false 并且服务器目录也具有读写权限则允许上传
read only = true
# 指定当客户请求列出可以使用的模块列表时,该模块是否应该被列出
list = no
# 同步验证时用的账号,这里的用户和系统用户没有任何关系。
# 用户名和口令以明文方式存放在 secrets file 参数指定的文件中
auth users = rsync
# 指定认证文件
secrets file = /etc/rsyncd/rsyncd.secrets
# 指定是否监测口令文件的权限,若为 true 则口令文件只能被 rsync 服务器运行身份的用户访问,其他任何用户不可以访问该文件
strict modes = true


配置文件默认要在 /etc下

ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf


创建认证文件 格式 验证名:验证密码 一行一个,不必是系统用户

vim /etc/rsyncd/rsyncd.secrets


内容为

rsync:rsync123456


设置认证文件的权限

chown root:root /etc/rsyncd/rsyncd.secrets
chmod 600 /etc/rsyncd/rsyncd.secrets


打开默认端口 873

vim /etc/sysconfig/iptables


加入

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT


重启生效

service iptables restart


启动 rsync

rsync --daemon


查看是否启动

lsof -i:873


看见这样的信息就是成功启动了

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   17978 root    4u  IPv4  93140      0t0  TCP *:rsync (LISTEN)
rsync   17978 root    5u  IPv6  93141      0t0  TCP *:rsync (LISTEN)


三、客户器端配置

按上述步骤安装好rsync

无须启动,直接运行语句

rsync -avz --progress --delete rsync@192.168.1.136::rsyncd /home/wwwroot/attachments --password-file=/etc/rsyncd.pwd


--password-file 指定密码文件,存放密码

内容为
rsync123456


-a archive mode; equals -rlptgoD,归档模式,相当于-rlptgoD,保证文件的属性,创建时间,用户组等信息

-v 进度信息

-z 压缩传输

--delete 保证客户端和服务器端的数据完全一致,若服务器文件被删除了,客户端也会删除

详细的参数列表执行 rsync -h 查看,一般来说 -avz 和 --delete 就可以满足需求了

四、定时备份/同步

在客户端设置定时执行同步

利用crontab

若没安装 crontab 执行如下命令安装

yum install crontabs


添加自启动

chkconfig crond on


启动
service crond start
添加定时任务

crontab -e


加入(一分钟执行一次同步)

*/1 * * * *	rsync -avz --progress --delete rsync@192.168.1.136::rsyncd /home/wwwroot/attachments --password-file=/etc/rsyncd.pass


具体时间根据自己要求更改,比如每天凌晨1点执行一次同步,0 1 * * *

下图是136 和137服务器同步前和同步后的对比

192.168.1.136



192.168.1.137



在137 上执行同步后



images 文件已被删除,t6-6.jpg已同步下来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: