云机器同步数据 - rsync

Posted shining5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云机器同步数据 - rsync相关的知识,希望对你有一定的参考价值。

一、需求

从google cloud云机器上定期同步图片内容,选用了支持增量备份的rsync。

二、rsync概述

rsyn是类unix系统下的数据镜像备份工具 - remote sync,安全性高,备份快速,支持增量备份,本地复制,远程同步等优点。

适用于实时性要求不高的数据备份需求。

rsync命令同步系统文件之前要先登录remote主机认证,认证过程中需要3中协议:ssh协议,rsync协议。

三、 rsync原理

rsync以daemon方式运行时,server会打开一个端口,等待客户端连接。连接时,rsync server会检查口令是否相符,通过口令后开始传输。

第一次传输会把所有文件传输,以后则增量备份。

四、 配置

1. 全局参数说明:

address    独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP

port       指定 rsync 守护进程监听的端口号,默认 873

pid file     rsync 的守护进程将其 PID 写入指定的文件

log file     指定 rsync 守护进程的日志文件,而不将日志发送给 syslog

syslog facility   指定 rsync 发送日志消息给 syslog 时的消息级别

socket options  指定自定义 TCP 选项

lockfile   指定rsync的锁文件存放路径

timeout    超时时间

2. 模块参数说明:

path       指定当前模块的同步路径,该参数是必须指定的

comment   给模块指定一个描述

use chroot           在服务运行时要不要把他锁定在家目录,默认为 true

uid和gid            指定rsync运行用户和用户组,默认nobody

use chroot           是否让进程离开工作目录

max connections      最大并发连接数,0为不限制

lock file             指定支持 max connections的锁文件。默认/var/run/rsyncd.lock

read only          只读选择,默认true

write only         只写选择,不让客户端从服务器上下载文件。默认false

auth users  执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开,默认为匿名方式

secrets file  指定一个 rsync 认证口令文件。只有在 auth users 被定义时,该文件才起作用。文件权限必须是 600

hosts allow  指定哪些主机客户允许连接该模块。默认值为 *

hosts deny  指定哪些主机客户不允许连接该模块

 

3. daemon模式配置文件,配置文件默认在/etc/rsyncd.conf

port = 3873
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
uid = root
gid = root
use chroot = no
max connections = 5
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[share]
path = /opt/downImg/img
read only = no
list = true
auth users = root
secrets file = /etc/rsync.passwd

 

4. 创建密码文件 echo "root:123" >  /etc/rsync.passwd 密码格式:用户名:密码

chmode 600 /etc/rsync.passwd

 

5. 启动服务

rsync --daemon

 

6. 因服务在谷歌云机器上,所以需要开通端口号:3873及ip白名单。否则无法从外网下载

7. 同步数据

因改了端口号,需要--port指定端口号

rsync -avz --port 3873 root@ip::share pathname

输入密码,开始同步

8. 无密同步方法

echo "123" >/etc/rsync.password 

chomd 600 /etc/rsync.password 

rsync -avz --port 33380 root@ip::share pathname --password-file=/etc/rsync.password

 

参考文档:https://blog.51cto.com/longlei/2082745

以上是关于云机器同步数据 - rsync的主要内容,如果未能解决你的问题,请参考以下文章

rsync 同步mac机器目录数据到windows2008R2

利用rsync进行数据同步

Linux rsync数据同步命令解析

centos系统rsync+sersync实现数据实时同步

rsync结合inotify实现数据自动同步

rsync高级同步