> Linux教程 >

Linux系统下的数据镜像备份工具——Rsync

1、什么是rsync

rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync是用“rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。

  rsync 包括如下的一些特性:

  能更新整个目录和树和文件系统;
  有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
  对于安装来说,无任何特殊权限要求;
  对于多个文件来说,内部流水线减少文件等待的延时;
  能用rsh、ssh 或直接端口做为传输入端口;
  支持匿名rsync 同步文件,是理想的镜像工具;

2、rsync的安装,通用方式:yum install rsync

3、rsync服务器的配置文件

[plain]view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. cat /etc/rsyncd/rsync.conf  

  2. # Distributed under the terms of the GNU General Public License v2  

  3. # Minimal configuration file for rsync daemon  

  4. # See rsync(1) and rsyncd.conf(5) man pages for help  

  5. # This line is required by the /etc/init.d/rsyncd script  

  6.  

  7. pid file = /var/run/rsync.pid  

  8. port = 873  

  9. #address = 192.168.1.171  

  10. #uid = nobody  

  11. #gid = nobody  

  12. uid = root  

  13. gid = root  

  14. use chroot = yes  

  15. read only = no  

  16.  

  17. #limit access to private LANs  

  18. hosts allow=*  

  19. #hosts deny=*  

  20. max connections = 5  

  21. motd file = /etc/rsyncd/rsync.motd  

  22.  

  23. #This will give you a separate log file  

  24. #log file = /var/log/rsync.log  

  25. #This will log every file transferred - up to 85,000+ per user, per sync  

  26. #transfer logging = yes  

  27.  

  28. log format = %t %a %m %f %b  

  29. syslog facility = local3  

  30. timeout = 300  

  31.  

  32. [data]  

  33. path = /data1  

  34. list=yes  

  35. ignore errors  

  36. auth users = root  

  37. secrets file = /etc/rsyncd/rsync.secrets  

  38. comment = rsync data1 dir  

  39. #exclude = beinan/ samba/  

  40.  

  41. [garbagekrc]  

  42. path = /data1/garbagekrc  

  43. list=yes  

  44. ignore errors  

  45. auth users = root  

  46. secrets file = /etc/rsyncd/rsync.secrets  

  47. comment = rsync garbagekrc dir  

用户密码文件:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. cat /etc/rsyncd/rsync.secrets  

  2. root:test123  

其中用户名必须是服务器上已经存在的用户
4、启动rsync服务:/usr/bin/rsync --daemon --config=/etc/rsyncd/rsync.conf

5、备份文件到服务器:

rsync -az --password-file=rsync.password jsoncpp/* root@IP::data/mydata/

其中:password-file可以指定密码。

6、rsync也可以从服务器上拉文件到本地。结合crontab可以实现定时同步的功能。

7、更多用法请:man rsync。

(责任编辑:IT)