以下系统版本下的的Rsync的配置:
1,root@zko-laptop:/home/zko# cat /etc/issue
Ubuntu 14.04.1 LTS \n \l
2,root@zko-laptop:/home/zko# uname -a
Linux zko-laptop 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:45 UTC 2014 i686 i686 i686 GNU/Linux
3,root@zko-laptop:/home/zko# cat /proc/version
Linux version 3.13.0-36-generic (buildd@allspice) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #63-Ubuntu SMP Wed Sep 3 21:30:45 UTC 2014
简介
rsync是类unix系统下的数据镜像备份工具――remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
特性
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
服务端iP:192.168.1.101 客户端IP:192.168.1.103
服务端安装配置:
安装:
root@zko-laptop:/home/zko# sudo apt-get install rsync
寻找配置文件:
root@zko-laptop:/home/zko# locate rsyncd.conf
/usr/share/doc/rsync/examples/rsyncd.conf
root@zko-laptop:/home/zko# cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsyncd.conf
root@zko-laptop:/home/zko# cat /etc/rsyncd.conf // 已经修改的
# sample rsyncd.conf configuration file
# GLOBAL OPTIONS
motd file=/etc/rsyncd.motd
log file=/var/log/rsyncd.log
transfer logging=yes
lock file=/var/run/rsync.lock
port=873
address=192.168.1.101
uid=nobody
gid=nobody
use chroot=no
read only=yes
max connections=10
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
# The init.d script does its own pid file handling,
# so omit the "pid file" line completely in that case.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=
# MODULE OPTIONS
[ftp]
comment = public archive
path = /var/www/pub
use chroot = yes
#max connections=10
lock file = /var/lock/rsyncd
# the default for read only is yes...
read only = yes
list = yes
uid = nobody
gid = nogroup
#exclude =
#exclude from =
#include =
#include from =
#auth users =
#secrets file = /etc/rsyncd.secrets
strict modes = yes
#hosts allow =
#hosts deny =
ignore errors = no
ignore nonreadable = yes
transfer logging = no
#log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
在[ftp]下增加共享目录模块:(编辑/etc/rsyncd.conf,增加[common]模块)
[common]
comment=Web content
path=common/ // 共享文件夹
ignore errors
#exclude=test/
auth users=tom,jerry //用户
secrets file=/etc/rsyncd.secrets //密码验证文件
host allow=192.168.1.101/255.255.255.0
host deny=*
list=false
添加共享文件夹:common/ ;
配置/etc/rsyncd.secrets文件,创建用户密码:
root@zko-laptop:/home/zko# echo "tom:123456" >>/etc/rsyncd.secrets
root@zko-laptop:/home/zko# cat /etc/rsyncd.secrets
tom:123456
root@zko-laptop:/home/zko# echo "jerry:123456" >>/etc/rsyncd.secrets
root@zko-laptop:/home/zko# cat /etc/rsyncd.secrets
tom:123456
jerry:123456
配置/etc/rsync.motd文件,创建服务器提示文件rsync.motd:
root@zko-laptop:/home/zko# chmod 600 /etc/rsyncd.secrets
root@zko-laptop:/home/zko# echo "welcome to access">>/etc/rsync.motd
root@zko-laptop:/home/zko# cat /etc/rsync.motd
welcome to access
查看系统开启的端口:
root@zko-laptop:/home/zko# netstat -nap| grep 873
tcp6 0 0 :::41873 :::* LISTEN 1313/rpc.mountd
unix 2 [ ACC ] 流 LISTENING 12873 1210/mysqld /var/run/mysqld/mysqld.sock
开启rsync服务;
root@zko-laptop:/home/zko# rsync --daemon
root@zko-laptop:/home/zko# netstat -nap| grep 873
tcp 0 0 192.168.1.101:873 0.0.0.0:* LISTEN 4200/rsync
tcp6 0 0 :::41873 :::* LISTEN 1313/rpc.mountd
unix 2 [ ACC ] 流 LISTENING 12873 1210/mysqld /var/run/mysqld/mysqld.sock
客户端安装:
查询升级:
root@zko-love:/home/zko# dpkg -l | grep rsync
ii librsync1:amd64 0.9.7-10 amd64 rsync remote-delta algorithm library
ii rsync 3.1.0-2 amd64 fast, versatile, remote (and local) file-copying tool
root@zko-love:/home/zko# apt-get install rsync
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被升级:
rsync
升级了 1 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 411 个软件包未被升级。
需要下载 283 kB 的软件包。
解压缩后会消耗掉 0 B 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main rsync amd64 3.1.0-2ubuntu0.1 [283 kB]
下载 283 kB,耗时 14秒 (19.5 kB/s)
(正在读取数据库 ... 系统当前共安装有 167318 个文件和目录。)
Preparing to unpack .../rsync_3.1.0-2ubuntu0.1_amd64.deb ...
Unpacking rsync (3.1.0-2ubuntu0.1) over (3.1.0-2) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
正在设置 rsync (3.1.0-2ubuntu0.1) ...
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match rsync Default-Stop values (none)
System start/stop links for /etc/init.d/rsync already exist.
客户端与服务端链接:
root@zko-love:/home/zko# rsync -vzrtopg --progress [email protected]::common /test
Password:
@ERROR: invalid gid nobody
rsync error: error starting client-server protocol (code 5) at main.c(1653) [Receiver=3.1.0]
root@zko-love:/home/zko# rsync -vzrtopg --progress [email protected]::common
出现错误:@ERROR: invalid gid nobody
解决办法:子啊服务端(192.168.1.101)编辑、etc/rsyncd.conf修改uid=0 gid=0;
root@zko-love:/home/zko# rsync -vzrtopg --progress [email protected]::common /test
root@zko-love:/home/zko# rsync -vzrtopg --progress [email protected]::common /test
Password:
receiving incremental file list
created directory /test
./
README
2,427 100% 2.31MB/s 0:00:00 (xfr#1, to-chk=67/69)
acpid
2,243 100% 1.07MB/s 0:00:00 (xfr#2, to-chk=66/69)
anacron
2,014 100% 491.70kB/s 0:00:00 (xfr#3, to-chk=65/69)
apache2
9,974 100% 1.59MB/s 0:00:00 (xfr#4, to-chk=64/69)
....................................................................
xrdp
4,963 100% 79.45kB/s 0:00:00 (xfr#68, to-chk=0/69)
sent 1,319 bytes received 76,155 bytes 17,216.44 bytes/sec
成功!
test目录在192.168.1.103的文件系统根目录下;
root@zko-love:/# ll test/-------------------------------------->192.168.1.103
总用量 324
-rwxr-xr-x 1 root root 2243 9月 30 14:48 acpid
-rwxr-xr-x 1 root root 2014 9月 30 14:48 anacron
-rwxr-xr-x 1 root root 9974 9月 30 14:48 apache2
................................................................................
-rwxr-xr-x 1 root root 3111 9月 30 14:48 urandom
-rwxr-xr-x 1 root root 2666 9月 30 14:48 x11-common
-rwxr-xr-x 1 root root 4963 9月 30 14:48 xrdp
root@zko-laptop:/home/zko# ll /etc/init.d ------------------------->192.168.1.101
总用量 308
-rwxr-xr-x 1 root root 2243 4月 4 02:40 acpid
-rwxr-xr-x 1 root root 2014 2月 20 2014 anacron
-rwxr-xr-x 1 root root 9974 1月 7 2014 apache2
..................................................................
-rwxr-xr-x 1 root root 3111 3月 13 2014 urandom
-rwxr-xr-x 1 root root 2666 3月 23 2012 x11-common
-rwxr-xr-x 1 root root 4963 1月 22 2012 xrdp
---------------------------------------------本机的复制----------------------------------------
root@zko-love:/home/zko# rsync -avz /home/zko/1 /tmp
sending incremental file list
1/
1/data.txt
1/test21.sh
1/test/
1/test/1.sh
1/test/2.sh
1/test/3.sh
sent 492 bytes received 127 bytes 1,238.00 bytes/sec
total size is 112 speedup is 0.18
root@zko-love:/home/zko# cd /t
test/ tmp/
root@zko-love:/home/zko# cd /tmp/
root@zko-love:/tmp# ls
1 ssh-V4uwFb1IMz48 unity_support_test.1
root@zko-love:/tmp# tree 1
1
├── data.txt
├── test
│ ├── 1.sh
│ ├── 2.sh
│ └── 3.sh
└── test21.sh
1 directory, 5 files
-----------------------------------显示服务器所有模块名称------------------------------------
root@zko-love:/home/zko# rsync --list-only [email protected]::
ftp public archive
common Web content
---------------------------------------------------------------------------------------------------------
参数详解编辑
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息