如何在Linux下使用Rsync

如何在Linux下使用Rsync

吐槽

  昨天对scp进行总结之后看到最后有说到Rsync,俗语有云:好奇心害死猫。抱着学习的态度将Rsync给找了出来,然后进行了一些简单的学习。下面介绍一些个常用的命令。上篇的scp:12个scp传输文件的栗子

简介

  rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
  对于各种组织和公司,数据对他们是最重要的,即使对于电子商务,数据也是同样重要的。Rsync是一款通过网络备份重要数据的工具/软件。它同样是一个在类Unix和Window系统上通过网络在系统间同步文件夹和文件的网络协议。Rsync可以复制或者显示目录并复制文件。Rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。Rsync必须在远程和本地系统上都安装。
  rsync的主要好处是:
  速度:最初会在本地和远程之间拷贝所有内容。下次,只会传输发生改变的块或者字节。
  安全:传输可以通过ssh协议加密数据。
  低带宽:rsync可以在两端压缩和解压数据块。
  语法:

1 #rsysnc [options] source path destination path

  下面来介绍一下具体的使用技巧。
                                                    一、启用压缩、详细信息以及递归

1  [[email protected] /]# rsync -zvr /home/aloft/ /backuphomedir
2     building file list ... done
3     .bash_logout
4     .bash_profile
5     .bashrc
6     sent 472 bytes received 86 bytes 1116.00 bytes/sec
7     total size is 324 speedup is 0.58

  在上述命令中:
  -z:此选项是启用压缩,这样可以加快传输速度,因为在传输过程中它进行压缩,但是在传输完成后在另一端又解压缩,所以会节省时间,一般情况下可以节省几倍左右的时间,当然了,对于那些已经压缩的文件就没有效果了。
  -v:此选项启用后可以查看传输的详细的信息,以便于及时看到反馈信息。
  -r:此选项是递归下载,可用于下载整个文件夹时使用。
                                                  二、保留文件和文件夹属性  

1 [[email protected] /]# rsync -azvr /home/aloft/ /backuphomedir
2     building file list ... done
3     ./
4     .bash_logout
5     .bash_profile
6     .bashrc
7
8     sent 514 bytes received 92 bytes 1212.00 bytes/sec
9     total size is 324 speedup is 0.53

  -a:此选项可以保留文件或者文件夹的属性,如所属用和所属组、时间戳、软链接以及权限。
                                                    三、同步本地到远程主机

 1   [email protected] /]# rsync -avz /home/aloft/ [email protected]:192.168.1.4:/share/rsysnctest/
 2     Password:
 3
 4     building file list ... done
 5     ./
 6     .bash_logout
 7     .bash_profile
 8     .bashrc
 9     sent 514 bytes received 92 bytes 1212.00 bytes/sec
10     total size is 324 speedup is 0.53

  这个比较简单了,只要指定远程主机IP或者主机,以及用户名,并且知道密码,那么你就可以很轻松的在本地以及远程机器之间进行文件或文件夹的同步。
                                                     四、远程同步到本地主机

1   [[email protected] /]# rsync -avz [email protected]:192.168.1.4:/share/rsysnctest/ /home/aloft/
2     Password:
3     building file list ... done
4     ./
5     .bash_logout
6     .bash_profile
7     .bashrc
8     sent 514 bytes received 92 bytes 1212.00 bytes/sec
9     total size is 324 speedup is 0.53 - See more at: http://linoxide.com/how-tos/rsync-copy/#sthash.    2HsquzPh.dpuf 

  当然了,有同步到远程自然也会有同步到本地撒,这个和上面的三类似,仅仅是地址相反而已了~
                                                    五、找出文件之间的不同

 1   [[email protected] backuphomedir]# rsync -avzi /backuphomedir /home/aloft/
 2     building file list ... done
 3     cd+++++++ backuphomedir/
 4     >f+++++++ backuphomedir/.bash_logout
 5     >f+++++++ backuphomedir/.bash_profile
 6     >f+++++++ backuphomedir/.bashrc
 7     >f+++++++ backuphomedir/abc
 8     >f+++++++ backuphomedir/xyz
 9
10     sent 650 bytes received 136 bytes 1572.00 bytes/sec
11     total size is 324 speedup is 0.41

  上面的命令可以帮你找出源地址和目的地址的文件或者目录之间的不同。
  -i:此选项可以将文件或者目录间的不同列出来方便迅速定位修改过的文件.
                                                    六、备份

  rsync命令可以用来备份linux。你可以在cron中使用rsync安排备份。

1  0 0 * * * /usr/local/sbin/bkpscript &> /dev/null
2
3  vi /usr/local/sbin/bkpscript
4
5  rsync -avz -e ‘ssh -p2093′ /home/test/ [email protected]:/oracle/data/

                                                    七、其它相关参数:

 1   -v, --verbose 详细模式输出
 2     -q, --quiet 精简输出模式
 3     -c, --checksum 打开校验开关,强制对文件传输进行校验
 4     -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
 5     -r, --recursive 对子目录以递归模式处理
 6     -R, --relative 使用相对路径信息
 7     -b, --backup     创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--    suffix选项来指定不同的备份文件前缀。
 8     --backup-dir 将备份文件(如~filename)存放在在目录下。
 9     -suffix=SUFFIX 定义备份文件前缀
10     -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(    不覆盖更新的文件)
11     -l, --links 保留软链结
12     -L, --copy-links 想对待常规文件一样处理软链结
13     --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
14     --safe-links 忽略指向SRC路径目录树以外的链结
15     -H, --hard-links 保留硬链结
16     -p, --perms 保持文件权限
17     -o, --owner 保持文件属主信息
18     -g, --group 保持文件属组信息
19     -D, --devices 保持设备文件信息
20     -t, --times 保持文件时间信息
21     -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
22     -n, --dry-run现实哪些文件将被传输
23     -W, --whole-file 拷贝文件,不进行增量检测
24     -x, --one-file-system 不要跨越文件系统边界
25     -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
26     -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
27     --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
28     -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
29     --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
30     --delete 删除那些DST中SRC没有的文件
31     --delete-excluded 同样删除接收端那些被该选项指定排除的文件
32     --delete-after 传输结束以后再删除
33     --ignore-errors 及时出现IO错误也进行删除
34     --max-delete=NUM 最多删除NUM个文件
35     --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
36     --force 强制删除目录,即使不为空
37     --numeric-ids 不将数字的用户和组ID匹配为用户名和组名
38     --timeout=TIME IP超时时间,单位为秒
39     -I, --ignore-times 不跳过那些有同样的时间和长度的文件
40     --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
41     --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
42     -T --temp-dir=DIR 在DIR中创建临时文件
43     --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
44     -P 等同于 --partial
45     --progress 显示备份过程
46     -z, --compress 对备份的文件在传输时进行压缩处理
47     --exclude=PATTERN 指定排除不需要传输的文件模式
48     --include=PATTERN 指定不排除而需要传输的文件模式
49     --exclude-from=FILE 排除FILE中指定模式的文件
50     --include-from=FILE 不排除FILE指定模式匹配的文件
51     --version 打印版本信息
52     --address 绑定到特定的地址
53     --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
54     --port=PORT 指定其他的rsync服务端口
55     --blocking-io 对远程shell使用阻塞IO
56     -stats 给出某些文件的传输状态
57     --progress 在传输时现实传输过程
58     --log-format=formAT 指定日志文件格式
59     --password-file=FILE 从FILE中得到密码
60     --bwlimit=KBPS 限制I/O带宽,KBytes per second
61     -h, --help 显示帮助信息

  以上就是有关Rsync的用法了,不对之处欢迎指出~看完之后觉得有收获请留下足迹让我知道~
  参考文章:http://linoxide.com/how-tos/rsync-copy/
  了解更多:  http://linux.die.net/man/1/rsync

   PS:本博客欢迎转发,但请注明博客地址及作者~

    博客地址:http://www.cnblogs.com/voidy/

   <。)#)))≦

 

时间: 2024-10-05 12:44:12

如何在Linux下使用Rsync的相关文章

如何在Linux下使用rsync进行数据备份

对于各种组织和公司,数据对他们是最重要的,即使对于电子商务,数据也是同样重要的.Rsync是一款通过网络备份重要数据的工具/软件.它同样是一个在类Unix和Window系统上通过网络在系统间同步文件夹和文件的网络协议.Rsync可以复制或者显示目录并复制文件.Rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件.Rsync必须在远程和本地系统上都安装. rsync的主要好处是: 速度:最初会在本地和远程之间拷贝所有内容.下次,只会传输发生改变的块或者字节. 安全:传输

如何在Linux下禁用IPv6

如何在Linux下禁用IPv6 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6                            禁用IPv6(包括回环接口) echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6                     禁用IPv6(默认) vim /etc/sysctl.conf                                    

如何在Linux下拷贝一个目录呢

cp -af newadmin/movie/.   uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/mnt/temp,首先想到的就是 cp -R /home/usera/* /mnt/temp 但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的. 那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道. 其实没这么复杂,Google了之后,学了一

如何在Linux下使用命令行嗅探HTTP流量

通常我们在调试Web应用.RESTFUL服务或者排错PAC (proxy auto config) 以及检查是否有恶意访问等会去通过错误日志日志或者嗅探数据包的方式去排错:常见的嗅探数据包软件有tcpdump.wireshark;但是针对HTTP需要对数据包进行过滤,显示格式也更不容易读,Httpry工具就能更方便易读的嗅探HTTP流量 安装httpry 基于Debian(Ubuntu or Linux Mint),基础库并没有httpry包,我们用源码来安装 1 2 3 4 5 $ sudo

Linux教程:如何在Linux下进行C++开发?

Linux是一类Unix计算机操作系统的统称,Linux操作系统的内核的名字也是“Linux”, 在Linux下进行C++开发,需要注意许多问题,比如:减少不必要的编辑动作,减少编辑的时间. Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户.例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmake.它们以集成方式提供给最终用户,对于初学者而言十分方便. 但是,这种商业模式,直接导致用户可定制性差,不利于自动化,集成

(转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80%9A%E8%BF%87rsync%E4%B8%8Einotify%E5%BC%82%E6%AD%A5%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BA%8B%E4%BB%B6%E7%9B%91%E6%8E%A7%E6%9C%BA%E5%88%B6%E5%AE%9E

(总结)Linux下使用rsync最快速删除海量文件的方法

昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用.这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长.所以必须要采取一些非常手段.我们可以使用rsync来实现快速删除大量文件. 1.先安装rsync:yum install rsync2.建立一个空的文件夹:mkdir /tmp/test3.用rsync删除目标目录:rsync --delete-before -a -H -v --progress -

如何在Linux下发送外部邮件

Linux自带mail命令的测试 步骤1: 通过mail命令发送邮件,发现无法发到外网邮箱,从网上找到相关说明,查看mail和mailx的版本 [[email protected] ~]# rpm -qa|grep mailxmailx-8.1.1-44.2.2 必须要 12以上的版本才可以向外部发邮件.(参考) 步骤2: 下载mailx-12.4并安装.下载地址:参考. 解压:tar -jxvf mailx-12.4.tar.gz2 安装:make; 可以参照这个流程进行,该流程已经验证可行.

如何在Linux下使用Gitblit工具创建Git仓库服务

嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性,并且支持分布式.非线性工作流.它最初由Linus Torvalds在2005年为Linux内核设计和开发,使用GPLv2证书,并从此成为软件开发中使用最广泛的版本控制系统. Gitblit是完全开源的软件,它基于纯粹的Java堆栈,被设计以在Git仓库速度和效率方面胜任从小型到极大型的项目.它很容