`

rsync命令(转)

 
阅读更多

转载自:http://www.cnblogs.com/highriver/archive/2011/10/20/2218761.html

 

一。rsync中exclude的使用:如果排除的文件比较多时,使用一个文件定义要排除的文件或文件夹,使用--exclude-from=file 来执行。注意exclude前面是二个"-"

rsync的exclude非常好用,cp,mv都没有这样的exclude参数。唯一注意是eclucde后面的文件或文件夹必须是相对路径。所以最好提前进入源目录比较方便。

1.将linuxtest目录下的除了abc目录之外的内容同步到上级目录。

rsync -arv --exclude abc /home/gaoyibo/linuxtest/ /home/linuxtest/

2.使用--exclude-from
rsync -avz --exclude-from=/home/gaoyibo/search/exclude.list  /home/gaoyibo/search    root@tadev29.daodao.com:/home/gaoyibo/

exclude.list里面定义:
apache-tomcat-6.0.13*
daodaosearchserver0829.tar
dat.tar
eclipse.tar
lib*
liuding
pages
php-site
searchServer.war
src
usr*
web.xml
workspace
未命名.rtf
汉语词典快速查询算法研究.do

二。使用rsync注意

注意source/路径原则。source/与source的结果不同的。前者只同步source/下的内容。而后者会将source一起同步。

 

三。转自http://wandering.blog.51cto.com/467932/105113

6.1 显示目录内容

命令
------
a) rsync <dst-dir>
b) rsync -r <dst-dir>
c) rsync jack@192.168.0.1::<dst-dir>
d) rsync ssh_user@192.168.0.1:<dst-dir>

命令说明
---------
a) 显示<dst-dir>目录
内容(第一层)
b) 递归显示<dst-dir>目录
内容
c) 显示远程主机<dst-dir>目录内容
   *注1:端口模式, 基于rsync用户的身份验证
   *注2:rsync server上的目录必须具有xx7的权限.
d) 查看
远程主机<dst-dir>目录内容
   *注1:remote shell模式, 通过ssh连接的基于系统本地用户的身份验证
   *注2:这里只使用了一个冒号(:),同时用户名是远
程主机
的ssh用户,密码也是ssh用户对应的密码。
   *注3:使用"<dst-dir>",则列出<dst-dir>文件夹本身的信息。若要列出<dst-dir>文件夹内容,应使用"<dst-dir>/"。

   
参数说明
---------
-r          对目录进行递归操作

   
6.2 本地目录之间同步

命令
------
a) rsync -av  --progress <src-dir>/ <dst-dir>             *** 注意(/) ***
b) rsync -av  --progress <src-dir>  <dst-dir>
c) rsync -avu --progress --delete <src-dir>/  <dst-dir>
d) 
rsync -av  --progress --temp-dir=/tmp <src-dir>/ <dst-dir>


命令说明
---------
a) 同步src-dir目录下所有文件到dst-dir目录下
b) 同步src-dir目录下所有文件到dst-dir/src-dir目录下
c) 对src-dir目录内容向dst-dir目录下进行差异更新,有增加/更新则添加替换,有减少则对其删减
d) 比a)多了
--temp-dir=/tmp,即指定/tmp为临时交换区,这样可以避免因目标目录空间不够引起的无法同步文件的错误。


参数说明
---------
-a          相当于 -rlptgoD 的集合
-u          等同于 --update,在目标文件比源文件新的情况下不更新
-v          显示同步的文件
--progress  显示文件同步时的百分比进度、传输速率
--delete    删除目标目录中多于源目录的文件



6.3 异地主机之间同步

命令
------
a) rsync -avz  --progress <src-dir> jack@192.168.0.1::<dst-dir>/

b) rsync -avz  --progress <src-dir> jack@192.168.0.1::<dst-dir>/ --password-file=/home/jack/rsync.jack

c) rsync -avuz  --progress --delete <src-dir> jack@192.168.0.1::<dst-dir>/ --password-file=/home/jack/rsync.jack

d) rsync -avz  --progress jack@192.168.0.1::<dst-dir>/<src-dir> <dst-dir>

命令说明
---------
a) 同步本地<src-dir>目录的内容到远程主机192.168.0.1的<dst-dir>目录下,jack是rsync数据库用户(参见3. /etc/rsync.secrets)
b) 通过自动读取用户密码而实现非交互登录文件同步

c) 较b)多了-u和--delete

d) 同步远程主机内容到本地目录


参数说明
---------
-z                等同于 --compress,对传输的文件压缩,这对节约网络带宽或在网络资源紧张的情况下非常有用
--password-file   引用192.168.0.1上rsync用户jack口令的本地文件,创建方法如下
                  shell> echo "jackpwd" >> /home/jack/
rsync.jack
                  shell> chown jack:wheel 
/home/jack/rsync.jack

                  shell> chmod 600 /home/jack/rsync.jack


-----------------------------------------------

转自http://ryyt1231.blog.163.com/blog/static/2070828120113260834691/
很常见的情况:我想同步/下的 /usr   /boot/ ,  但是不想复制/proc  /tmp 这些文件夹如果想避开某个路径  直接添加—exclude 即可
比如—exclude “proc”
–exclude ‘sources’
Note: the directory path is relative to the folder you are backing up.
注意:这个路径必须是一个相对路径,不能是绝对路径
例子:源服务器/home/yjwan/bashshell有一个checkout文件夹 
[root@CentOS5-4 bashshell]# ls -dl checkout
drwxr-xr-x 2 root root 4096 Aug 21 09:14 checkou
现在想要完全避开复制这个文件夹内容怎么办?
   
目标服务器执行
rsync -av –exclude “checkout” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
将不会复制这个文件夹
[root@free /tmp/bashshell]# ls -d /tmp/bashshell/checkout
ls: /tmp/bashshell/checkout: No such file or directory
     
注意:
1事实上,系统会把文件和文件夹一视同仁,如果checkout是一个文件,一样不会复制
2 如果想避开复制checkout里面的内容,可以这么写—exclude “checkout/123”
3 切记不可写为 —exclude “/checkout”这样绝对路径
这样写 将不会避免checkout被复制
比如
[root@free /tmp/bashshell]# rsync -av –exclude “/checkout” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
receiving file list … done
bashshell/checkout/
4可以使用通配符 避开不想复制的内容
比如—exclude “fire*”
那么fire打头的文件或者文件夹全部不会被复制
5如果想要避开复制的文件过多,可以这么写
–exclude-from=/exclude.list
exclude.list 是一个文件,放置的位置是绝对路径的/exclude.list ,为了避免出问题,最好设置为绝对路径。
里面的内容一定要写为相对路径
比如 我想避开checkout文件夹和fire打头的文件
那么/exclude.list 写为
checkout
fire*
然后执行以下命令,注意写为–exclude-from或者–exclude-from=都可以
但是不能为—exclude
rsync -av –exclude-from=”/exclude.list” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
检查结果:确实避开了checkout文件夹和fire打头的文件
   
问题:Rsync的其他几个常见参数 
1
-z        –compress              compress file data during the transfer 
–compress-level=NUM    explicitly set compression level
–skip-compress=LIST    skip compressing files with suffix in LIST
压缩传输,如果网络带宽不够,那么应该压缩以后传输,消耗的当然是机器资源,但是如果内网传输的话,文件数量不是很多的话,这个参数不必要的。
   
2
-password-file=FILE 
前面说过了,只有远端机器是rsync服务器,才能用这个参数
如果你以为个FILE写的是ssh 登陆的密码,那就大错特错了,不少人犯了这个错误。
  

–stats: Adds a little more output regarding the file transfer status.
   

–progress: shows the progress of each file transfer. Can be useful to know if you have large files being backup up.
   
关于这个参数: 
I frequently find myself adding the -P option for large transfers. It preserves partial transfers in case of interuption, and gives a progress report on each file as it’s being uploaded.
   
I move large media files back and forth on my servers, so knowing how long the transfer has remaining is very useful.

                  shell> chown jack:wheel /home/jack/rsync.jack
                  shell> chmod 600 /home/jack/rsync.jack

分享到:
评论

相关推荐

    使用Linux的rsync命令实现多服务器镜像同步.doc

    使用 Linux 的 rsync 命令实现多服务器镜像同步 在 Linux 系统中,rsync 命令是实现文件同步和备份的强大工具。rsync 命令可以实现多服务器镜像同步,使得文件在不同服务器之间保持一致。本文将详细介绍使用 rsync ...

    rsync命令教程 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

    Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: ...

    rsync命令详细解答

    ### rsync命令详解 #### 一、概述 `rsync`是Linux系统中一个非常强大的文件同步工具,它能够高效地在本地或者远程之间进行文件和目录的同步操作。相较于传统的`scp`命令,`rsync`具有更快的传输速度,并且支持增量...

    使用Linux的rsync命令实现多服务器镜像同步.docx

    使用 Linux 的 rsync 命令实现多服务器镜像同步 rsync 命令是一种高效的文件同步工具,经常应用于多服务器镜像同步中。通过 rsync 命令,可以实现对文件的实时同步、备份和恢复。以下是使用 rsync 命令实现多服务器...

    Rsync命令参数详解

    Rsync 命令参数详解 Rsync 命令是一种功能强大的工具,用于实现文件的同步和备份。下面对 Rsync 命令的参数进行详细解释。 1. 命令格式 Rsync 命令的格式可以分为六种: * rsync [OPTION]... SRC DEST * rsync ...

    linux rsync命令使用手册

    ### Linux Rsync命令使用手册详解 #### 概述 Rsync 是一款快速且功能极其强大的文件复制工具。它能够实现本地文件复制、通过任何远程Shell(例如 SSH 或 RSH)进行远程主机之间的文件复制,或者与远程 rsync 守护...

    linux下rsync命令详细整理.docx

    Linux 下 Rsync 命令详细整理 Rsync 是一个功能非常强大的工具,用于实现文件的同步和备份。Rsync 命令有六种不同的工作模式,分别是:拷贝本地文件、使用远程 shell 程序将本地机器的内容拷贝到远程机器、使用远程...

    Linux 命令之rsync命令详解

    **rsync命令详解** `rsync` 是 Linux 系统中的一款强大且高效的文件和目录同步工具,它能够通过局域网(LAN)或广域网(WAN)快速同步多台主机之间的数据。rsync 的核心优势在于其采用的“rsync 算法”,该算法能仅...

    windows上 git rsync命令

    在Windows环境中,Git不仅用于版本控制,还可以与`rsync`命令结合,实现文件和目录的同步、备份或迁移。`rsync`是一款强大的数据备份和同步工具,它源自Unix系统,但通过Git Bash或者MinGW/MSYS2等工具在Windows上也...

    linuxrsync安装配置及命令详解.pdf

    Linux rsync 安装配置及命令详解 Linux rsync 安装配置是 Linux 系统中的一种数据同步工具,通过 rsync 命令可以实现文件的同步、备份和恢复。rsync 服务器可以实现文件的实时同步,降低数据丢失的风险。 服务端...

    rsync命令用法.docx

    `rsync`命令是Linux系统中用于数据同步的强大的工具,它可以实现在本地或远程主机之间高效地复制和同步文件及目录。`rsync`以其高效的数据同步算法和丰富的选项而闻名,支持增量传输,从而大大减少了网络带宽的消耗...

    rsync命令在Linux系统中实现高效文件同步-方法笔记

    rsync命令在Linux系统中实现高效文件同步-方法笔记

    win10下使用git配置rsync实现断点续传及增量传输

    远程文件传输rsync-断点续传及增量传输,rsync实现断点续传 ...可以考虑使用rsync命令替代scp来断点续传文件 win10下使用git配置rsync实现断点续传,解压缩后cp到git对应usr目录下,打开bash 输入 rsync --version 验证

    ubuntu rsync中文乱码 window ubuntu rsync同步中文乱码.docx

    要解决`rsync`在Windows与Ubuntu之间同步中文文件名出现乱码的问题,我们需要关注`rsync`命令中的`--iconv`选项。`--iconv`选项用于指定源文件名和目标文件名的编码转换。以下是两种情况的解决方法: 1. **从...

    rsync备份项目详细笔记实战案例

    本地同步备份是指使用 rsync 命令在本地机器上同步备份文件或目录。例如: rsync -av 源目录 目标目录 这将同步源目录中的所有文件和目录到目标目录中。 远程同步备份 远程同步备份是指使用 rsync 命令和 ssh ...

Global site tag (gtag.js) - Google Analytics