首页 > 代码库 > Ubuntu 下Rsync配置及使用

Ubuntu 下Rsync配置及使用

以下系统版本下的的Rsync的配置:

1root@zko-laptop:/home/zko# cat /etc/issue

Ubuntu 14.04.1 LTS \n \l

2root@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

3root@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/ ;

wKioL1Qs5pWgH-p4AAKWd6Oa38o100.jpg

配置/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

升级了 个软件包,新安装了 个软件包,要卸载 个软件包,有 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 tom@192.168.1.101::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 tom@192.168.1.101::common 

出现错误:@ERROR: invalid gid nobody

解决办法:子啊服务端(192.168.1.101)编辑、etc/rsyncd.conf修改uid=0  gid=0;

root@zko-love:/home/zko# rsync -vzrtopg --progress tom@192.168.1.101::common /test

 

root@zko-love:/home/zko# rsync -vzrtopg --progress tom@192.168.1.101::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 tom@192.168.1.101::

 

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 指定使用rshssh方式进行数据同步

--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息

-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

--delete 删除那些DSTSRC没有的文件

--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 显示帮助信息

 

 


本文出自 “歪歪亮的小IT家” 博客,请务必保留此出处http://6226963.blog.51cto.com/6216963/1560355

Ubuntu 下Rsync配置及使用