共计 3526 个字符,预计需要花费 9 分钟才能阅读完成。
1、什么是 rsync?
-rsync 是类 unix 系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他 SSH、rsync 主机同步。
- 第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
- 安全:可以使用 scp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接。
- 支持匿名传输,以方便进行网站镜象。
2、本人操作的时候使用的具体的环境是:客户端:Mac+服务器端:Ubuntu
iOS 系统和 Ubuntu 是默认已经安装好 rsync 环境的,客户端可以直接打开 终端,使用 rsync 的相关命令就能进行操作;Ubuntu 在使用 rsync 的时候需要先通过一系列的设置来打开 rsync 的服务。
其他环境下关于 rsync 的安装和配置可参考以下链接:
https://rsync.samba.org
https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
https://rsync.samba.org/ftp/rsync/
3、关于服务器端 Ubuntu 下的 rsync 的相关配置
主要是创建配置文件 rsyncd.conf 列表内容
1、修改 /etc/default/rsync,让 rsync 服务在开机的时候启动:
$ sudo vim /etc/default/rsync
将 RSYNC_ENABLE=false 改为 RSYNC_ENABLE=true
2、创建并修改 rsyncd.conf,缺省安装中是没有这个文件的
先创建并编辑配置文件:
$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
$ sudo vim /etc/rsyncd.conf
3、去掉
log file=/var/log/rsyncd
pid file=/var/run/rsyncd.pid
syslog facility=daemon
前面的注释符号 #
4、修改 rsync 需要同步的路径:
path = /var/www/pub
(修改成客户端需要同步到的服务器端的的路径即可)
5、修改 rsync 使其可读可写:
read only = false
6、修改 rsync 用户:
auth users = rsync_user
secrets file = /etc/rsyncd.secrets
7、创建 rsync 用户密码文件:
sudo touch /etc/rsyncd.secrets
使其内容如下(例子):
rsync_user:rsync_password
8、修改用户密码文件权限:
$ sudo chmod 0600 /etc/rsyncd.secrets
9、启动 rsync
$ sudo /etc/init.d/rsync start
4、将客户端相关文件夹中的内容同步到服务器端设置路径下的相关命令的使用
$ rsync -avz local_filename server_username@server_ip:server_filename
5、rsync 的相关命参数
-v,–verbose // 详细模式输出;
-a,–archive // 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数 -rlptgoD;
-r, –recursive // 对子目录以递归模式处理;
-l, –links// 保留软链结;
-p, –perms // 保持文件权限;
-t, –times// 保持文件时间信息;
-g, –group // 保持文件属组信息;
-o, –owner // 保持文件属主信息;
-D, –devices // 保持设备文件信息;
-H, –hard-links // 保留硬链结;
-S, –sparse // 对稀疏文件进行特殊处理以节省 DST 的空间;
–delete // 删除那些 DST 中 SRC 没有的文件;
-z, –compress // 对备份的文件在传输时进行压缩处理;
6、rsync 六种不同的工作模式:
1. 拷贝本地文件,将 /home/coremail 目录下的文件拷贝到 /cmbak 目录下
$ rsync -avSH /home/coremail/ /cmbak/
2. 拷贝本地机器的内容到远程机器
$ rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
3. 拷贝远程机器的内容到本地机器
$ rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
4. 拷贝远程 rsync 服务器 (daemon 形式运行 rsync) 的文件到本地机
$ rsync -av root@172.16.78.192::www /databack
5. 拷贝本地机器文件到远程 rsync 服务器 (daemon 形式运行 rsync) 中。当 DST 路径信息包含”::”分隔符时启动该模式
$ rsync -av /databack root@172.16.78.192::www
6. 显示远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可
$ rsync -v rsync://192.168.11.11/data
7、rsync 配置文件说明:
cat/etc/rsyncd.conf // 内容如下
port = 873 // 端口号
uid = nobody // 指定当模块传输文件的守护进程 UID
gid = nobody // 指定当模块传输文件的守护进程 GID
use chroot = no // 使用 chroot 到文件系统中的目录中
max connections = 10 // 最大并发连接数
strict modes = yes // 指定是否检查口令文件的权限
pid file = /usr/local/rsyncd/rsyncd.pid // 指定 PID 文件
lock file = /usr/local/rsyncd/rsyncd.lock // 指定支持 max connection 的锁文件,默认为 /var/run/rsyncd.lock
motd file = /usr/local/rsyncd/rsyncd.motd // 定义服务器信息的,自己写 rsyncd.motd 文件内容
log file = /usr/local/rsyncd/rsync.log //rsync 服务器的日志
log format = %t %a %m %f %bsyslog facility = local3timeout = 300
[conf] // 自定义模块
path = /usr/local/nginx/conf // 用来指定要备份的目录
comment = Nginx confignore errors// 可以忽略一些 IO 错误
read only = no // 设置 no,客户端可以上传文件,yes 是只读
write only = no //no 为客户端可以下载,yes 不能下载
hosts allow = 192.168.2.0/24 // 可以连接的 IP
hosts deny = * // 禁止连接的 IP
list = false // 客户请求时,使用模块列表
uid = root
gid = root
auth users = backup // 连接用户名,和 linux 系统用户名无关系
secrets file = /etc/rsyncd.pass // 验证密码文件
RSync 实现文件备份同步详解 http://www.linuxidc.com/Linux/2014-09/106967.htm
利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm
利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm
inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm
rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm
CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm
Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm
Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134584.htm