关于rsync,网上有很多似是而非的教程,其实rsync本身的man文件已经解释的很清楚了,大部分同学看英文比较困难吧,网文都是互相抄来抄去,上来就是配置daemon,有病啊

rsync有两种运行模式

  • 直接执行命令,默认是通过ssh 协议传输数据,这就类似scp了,文件传输过程是加密的
  • 在本地或者远端配置一个rsync damoon程序,启动了一个tcp端口,数据直接传输

rsync dameon是为了不使用ssh协议来传输数据,并不能实时同步

建议使用直接执行模式,简单可靠,命令如下

rsync -avuzb --exclude '.svn' /data/www/lutaf root@1.1.1.1:/root/soft

-avuzb参数含义如下

  • 打包(递归缘文件夹并保留权限和宿主属性)
  • 显式
  • 只更新模式
  • 压缩
  • 创建备份(如果发现目标端有同名文件,文件名加一个~)
  • --exclude不需要同步的文件,支持正则表达式,可以有多个并列,或者使用--exclude-from=FILE,FILE是一个文本文件,每行一条规则,也支持正则表达式和通配符

重点

  • 目标文件夹,最后不能跟/
  • 源文件夹最后的/很有讲究,/代表整个文件夹的内容,下面两行是一样的效果,这是关键,要仔细理解

    rsync -av /src/foo /dest

    rsync -av /src/foo/ /dest/foo

在实施备份之前,还需要打通本地服务器和备份服务器直接的ssh登陆,很简单,通过ssh-keygen生成一个秘钥对,然后把idrsa.pub的内容添加到目标服务器的authorizedkeys文件中

第二步

把每项需要备份的目录,写到一个shell文件中,然后配置crontab,每隔4小时更新一次,非常完美!!

rsync不能自动运行,必须显式的调用,最简单的方法是配置crontab

linux内核2.6.13之后支持inotify,可以用它和rsync来实现实时同步,对于网站备份来说,我觉得没有什么必要

本文地址: http://lutaf.com/79.htm 鲁塔弗原创文章,欢迎转载,请附带原文链接