7月18

rsync

rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。

rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的。事实上,rsync有一套自己的算法,其算法原理以及rsync对算法实现的机制可能比想象中要复杂一些。

 

1. rsync [OPTION]... SRC DEST      拷贝本地文件

[root@localhost awk]# rsync -av /etc/passwd /tmp/22.txt    #备份passwd到/tmp/下的22.txt

sending incremental file list

passwd

sent 1252 bytes  received 31 bytes  2566.00 bytes/sec

total size is 1178  speedup is 0.92

2. rsync [OPTION]... SRC [USER@]HOST:DEST       本地机器的内容拷贝到远程机器

[root@localhost awk]# rsync -av /etc/passwd root@192.168.177.8:/tmp/22.txt            将本地机器上的/etc/passwd文件拷贝到远程192.168.177.8的/tmp/22.txt  

sending incremental file list

passwd

sent 1252 bytes  received 31 bytes  855.33 bytes/sec

total size is 1178  speedup is 0.92

3.rsync [OPTION]... [USER@]HOST:SRC DEST     将远程机器的内容拷贝到本地机器。

[root@localhost ~]# rsync -av root@192.168.177.8:/etc/cron.d/ /tmp/ss

receiving incremental file list

created directory /tmp/ss

./

0hourly

sent 33 bytes  received 225 bytes  172.00 bytes/sec

total size is 128  speedup is 0.50

4. -e 指定端口进行传输

[root@localhost ~]# rsync -avP -e "ssh -p 22"root@192.168.177.8:/etc/cron.d/ /tmp/ss

sending incremental file list

drwxr-xr-x          21 2017/11/09 14:13:19 ss

-rw-r--r--         128 2017/08/03 23:33:54 ss/0hourly

sent 57 bytes  received 13 bytes  140.00 bytes/sec

total size is 128  speedup is 1.83

 

 

rsync -a  -a包含的选项   -rtplgoD

-r   同步目录的时候要加上,类似cp的-r

-v   可视化,同步时显示一些信息,可以看到同步的过程

-l   保留软链接

-L  将软链接指向的原文件拷贝过去

-p  保留文件的权限shux

-o  保持文件的属主

-g  保持文件的属组

-D  保持文件设备信息

-t   保持文件的时间属性

-P   --progress 显示备份过程,比-v更加详细,比如显示速率

--delete  删除目标目录中没有的文件或目录

--exclude   过滤指定文件

-u   --update 仅仅进行更新,也就是跳过所有已经存在于DEST,并且文件时间晚于要备份的文件,不覆盖更新的文件。

-z    传输时压缩

rsync通过服务同步

两台机器:

A机器:192.168.177.8     

B机器:192.168.177.7  

需要将B机器的文件同步到A机器上

 

1. 编辑A机器配置文件,

[root@qw01 ~]# vi /etc/rsyncd.conf          #编辑配置文件,将以下内容添加到文件里

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.177.8

[test]

path=/tmp/rsync

use chroot=true

max connections=4

read only=no

list=true

uid=root

gid=root

#auth users=test

#secrets file=/etc/rsyncd.passwd

hosts allow=192.168.177.7 1.1.1.1 2.2.2.2  192.168.177.0/24

2.A机器启动服务

[root@qw01 ~]# rsync --daemon

[root@qw01 ~]# ps aux |grep rsync

root      1319  0.0  0.0 114652   520 ?        Ss   22:20   0:00 rsync --daemon

root      1322  0.0  0.0 112676   984 pts/0    S+   22:21   0:00 grep --color=auto rsy

3.A机器创建目录

[root@qw01 ~]# mkdir /tmp/rsync

[root@qw01 ~]# chmod 777 /tmp/rsync

 

4.前期的准备工作已经做完,可以开始同步文件

    从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式

     rsync [OPTION]... SRC [USER@]HOST::DEST

    B机器执行以下命令

[root@localhost ~]# rsync -avP /root/zx 192.168.177.8::test/zx.bak         #将B机器上的/root/zx文件备份到远程A机器,并改名为zx.bak

 

   从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式

    rsync [OPTION]... [USER@]HOST::SRC DEST

    A机器执行以下命令

[root@localhost ~]# rsync -avP 192.168.177.8::test/zx.bak /tmp/bb.txt

 

5. 配置文件详解

port      :指定在哪个端口启动rsyncd服务,默认是873端口。

log file  :指定日志文件。

pid file  :指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。

address   :指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。

[]        :指定模块名,里面内容自定义。 

path      :指定数据存放的路径。 

max connections     :指定最大的连接数,默认是0,即没有限制。 

read only ture|false:如果为true,则不能上传到该模块指定的路径下。

list                :表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。 

uid/gid             :指定传输文件时以哪个用户/组的身份传输。 

auth users          :指定传输时要使用的用户名。 

secrets file        :指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码文件的权限一定要是600。格式:用户名:密码

use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,建议设置成false。

hosts allow        :表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。

当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件 rsync -avL test@192.168.133.130::test/test1/  /tmp/test8/ --password-file=/etc/pass 其中/etc/pass内容就是一个密码,权限要改为600

转载于:https://my.oschina.net/u/3869429/blog/1859113

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值