昨天对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 [root@localhost /]# 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 [root@localhost /]# 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 root@localhost /]# rsync -avz /home/aloft/ azmath@192.168.1.4: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 [root@localhost /]# rsync -avz azmath@192.168.1.4: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 [root@localhost 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/ root@192.168.1.150:/oracle/data/
七、其它相关参数:
以上就是有关Rsync的用法了,不对之处欢迎指出~