前言
rsync
是unix
文件同步和传送工具。使用方法也很简单, 和cp
类似。
首先安装rsync
程序。
简单例子
先做一个简单的例子测试下, 稍后再解释参数用法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| mkdir /opt/dir1 /opt/dir2 -p echo 1 > /opt/dir1/file1
ll /opt/dir1/ /opt/dir2/
rsync -avzP /opt/dir1/ /opt/dir2/
ll /opt/dir1/ /opt/dir2/
|
命令选项
选项缩写 |
选项全称 |
选项说明 |
-a |
--archive |
完全的复制, 等于-rlptgoD 。 |
-v |
--verbose |
输出详细日志 |
-q |
--quiet |
输出简单日志 |
-r |
--recursive |
递归处理所有子目录 |
-z |
--compress |
对备份的文件在传输时进行压缩处理 |
-P |
--partial |
保留那些因故没有完全传输的文件, 用于加快随后的再次传输 |
更多选项查看: rsync命令
配置文件
rsync
有三个配置文件
rsyncd.conf
是rsync
服务器主要配置文件.
rsyncd.secrets
是登录rsync
服务器的密码文件.
rsyncd.motd
是定义rysnc
服务器信息的, 也就是用户登录信息. 非必须.
rsyncd.conf
配置文件官方example
如果/etc/rsync.conf
不存在, 就手动创建。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
uid = 0
gid = 0
use chroot = no
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log lock file = /var/run/rsyncd.lock
secrets file = /etc/rsyncd.passwd
max connections = 4
[module_test1] auth users = root path = /opt/dir1 comment = rsync test1 logs read only = no
[module_test2] auth users = root path = /opt/dir1 comment = rsync test2 logs read only = no
|
rsyncd.secrets
将远程服务器用户名密码存入/etc/rsyncd.passwd
文件, 重启服务
1 2 3 4 5 6 7 8
| echo "root:root" > /etc/rsyncd.passwd chown root.root /etc/rsyncd.passwd chmod 600 /etc/rsyncd.passwd
service rsync stop rsync --daemon --config=/etc/rsync.conf
|
自动同步
自动同步有两种方案
- 使用
crontab
定时调用
- 使用
inotifytools
监控文件变化, 请参照另一篇文章使用inotifytools
监控文件
这里提供一个简单的shell
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #!/bin/bash
function rs() { rsync -azP --delete $3 rsync://$1/$2 --password-file=/etc/rsyncd.passwd }
path=/opt/dir1/ module=module_test2 echo "开始同步到远程机器"
rs root@192.168.154.128 ${module} ${path}
rs root@192.168.154.129 ${module} ${path} echo "结束同步"
|
参考资料