码迷,mamicode.com
首页 > 其他好文 > 详细

rsync介绍

时间:2016-07-15 17:32:09      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:rsync

rsync介绍

  Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。


  后端的存储数据库都需要实时同步,而rsync用在存储的实时同步。

  inotify不会对老的数据进行增量,只有新的数据才会增量,这样就不存在比对的问题


   生产场景集群架构服务器备份方案cron+rsync

   rsync结合inotify的功能做实时数据同步rsync+inotify或sersync


Rsync三种同步方式

Local:

Access via remote shell:

Access via rsync daemon:


rsync常用参数说明:

网址:https://www.samba.org/ftp/rsync/rsync.html

   -v,--verbose详细模式输出,传输时的进度等信息

   -z,--compress传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩

   -a,--archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgD1

   -r,--recursive对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r

   -t,--times保持文件时间信息

   -o,--owner保持文件属主信息

   -p,--perms保持文件权限

   -g,--group保持文件属组信息

   -P,--progress显示同步的过程及传输时的进度等信息

   -r,--recursive对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r

   -e,--rsh=COMMAND使用的信道协议,指定替代rsh的shell程序。例如:ssh

   --exclude=PATTERN指定排除不需要传输的文件模式

-avz相当于vzrtopgDl

生产参数:-avz或者用-vzrtopg


实例:

用rsync备份目录

[root@cat ~]# cp /etc/hosts /tmp/          #用CP命令备份
cp: overwrite `/tmp/hosts‘? y
[root@cat ~]# rsync /etc/hosts /tmp/
[root@cat ~]# rm -f /tmp/hosts          
[root@cat ~]# rsync /etc/hosts /tmp/       #用rsync不加参数备份
[root@cat ~]# ll /etc/hosts                             
-rw-r--r--. 1 root root 158 Jan 12  2010 /etc/hosts
[root@cat ~]# ll /tmp/hosts                              #查看TMP目录下已有备份过来的文件
-rw-r--r-- 1 root root 158 Jul  1 09:11 /tmp/hosts

rsync最常见的命令组合是-avz

[root@cat ~]# ll /tmp/hosts   
ls: cannot access /tmp/hosts: No such file or directory
[root@cat ~]# rsync -avz /etc/hosts /tmp/                #用参数-avz复制文件夹
sending incremental file list                            
hosts                                                    #首次复制,提示hosts拷贝
sent 124 bytes  received 31 bytes  310.00 bytes/sec
total size is 158  speedup is 1.02
[root@cat ~]# ll /tmp/hosts              
-rw-r--r-- 1 root root 158 Jan 12  2010 /tmp/hosts
[root@cat ~]# rsync -avz /etc/hosts /tmp/                #再次拷贝,已提示不再拷贝
sending incremental file list
sent 30 bytes  received 12 bytes  84.00 bytes/sec
total size is 158  speedup is 3.76

删除目录及下面的文件,创建一个空目录。理论是空目录有什么,目标目录就有什么,这样就是空目录是空,执行后,目录目录也就空了

[root@cat ~]# ll /data/                                   #准备删除/data下的文件
total 8
-rw-r--r-- 1 old111 old111    0 Jun 15 16:36 23.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:30 333
-rw-r--r-- 1 old111 old111    0 Jun 15 16:28 333t.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:26 333.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:37 33.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:39 55.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:39 88.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 15:09 aaa.txt
-rw-r--r-- 1 old111 old111    0 Jun 14 16:31 aa.txt
drwxr-xr-x 3 old111 old111 4096 May 19 16:55 appdatas
drwxr-xr-x 3 old111 old111 4096 May 19 16:55 applogs
-rw-r--r-- 1 old111 old111    0 Jun 15 16:40 eter.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:46 we.txt
[root@cat ~]# mkdir /null                                #创建一个/null的文件夹
[root@cat ~]# rsync -r --delete /null /data/             #-r是递归--delete是删除
[root@cat ~]# ll /data/                                  #查看还在,是因为/null后面还要加(/)不加/它认为是null这个目录名及目录里面的内容。加/后,只表示目录里面的内容,不表示目录名了
total 12
-rw-r--r-- 1 old111 old111    0 Jun 15 16:36rs 23.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:30 333
-rw-r--r-- 1 old111 old111    0 Jun 15 16:28 333t.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:26 333.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:37 33.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:39 55.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 16:39 88.txt
-rw-r--r-- 1 old111 old111    0 Jun 15 15:09 aaa.txt
-rw-r--r-- 1 old111 old111    0 Jun 14 16:31 aa.txt
drwxr-xr-x 3 old111 old111 4096 May 19 16:55 appdatas
drwxr-xr-x 3 old111 old111 4096 May 19 16:55 applogs
-rw-r--r-- 1 old111 old111    0 Jun 15 16:40 eter.txt
drwxr-xr-x 2 root   root   4096 Jul  1 09:25 null
-rw-r--r-- 1 old111 old111    0 Jun 15 16:46 we.txt
[root@cat ~]# rsync -r --delete /null/ /data/            #使用/null/再次删除,这次已经删除成功
[root@cat ~]# ll /data/
total 0
[root@cat ~]# mkdir /null/ddd                            #这个目录有什么,执行后,目标目录也有什么
[root@cat ~]# rsync -r --delete /null/ /data/            
[root@cat ~]# ll /data/                                  #data下已有ddd文件夹(注:如果用rsync会干掉目标目录里的文件,cp不会)
total 4
drwxr-xr-x 2 root root 4096 Jul  1 09:31 ddd

学习自:

老男孩Linux

本文出自 “写给自己的博客” 博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1826697

rsync介绍

标签:rsync

原文地址:http://zhaodongwei.blog.51cto.com/4233742/1826697

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!