Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。




rsync的优点:




①可以镜像保存整个目录树和文件系统;
②可以很容易做到保持原来文件的权限、时间、软硬链接等;
③无须特殊权限即可安装;
④优化的流程,文件传输效率高;
⑤可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
⑥支持匿名传输

web服务器的位linux,网站数据每天都在变更,为了保证数据安全,需要建立一个远程容灾系统,将网站数据在每天凌晨3点30分备份到远程的容灾服务器上。由于数据量很大,每天只能进行增量备份


A服务器,rsync服务器为B服务器,B作为A的远程容灾备份。



AB两个系统上都安装rsync软件,这样,在A系统上运行rsync守护进程



B系统上可以通过系统守护进程crontab来定时备份由A系统指定的数据,从而实现数据的远程容灾。



内核2.6.18



rsync




A系统上配置rsync



/etc/rsync.conf  需要手动建立。




文件有一个或多个模块结构组成,相应的,包括全局参数和模块参数,

uid = nobody 
     
    
 
   
gid = nobody 
     
    
 
   
use chroot = no 
     
    
 
   
max connections = 10 
     
    
 
   
strict modes = yes 
     
    
 
   
pid file = /var/run/rsyncd.pid 
     
    
 
   
lock file = /var/run/rsync.lock 
     
    
 
   
log file = /var/log/rsyncd.log 
     
    
 
    
    
    
   
path = /test 
     
    
 
   
comment = xxwg file 
     
    
 
   
ignore errors 
     
    
 
   
read only = no 
     
    
 
   
write only = no 
     
    
 
   
hosts allow = * 
     
    
 
   
hosts deny = 192.168.12.100 
     
    
 
   
list = false 
     
    
 
   
uid = root 
     
    
 
   
gid = root 
     
    
 
   
auth users = backup    #注:此账号只是用来传输上的验证,并不需要在系统里新建账号
 
   
secrets file =  /etc/server.pass




/etc/server.pass内容如下:( server.pass 文件保持属主的600权限 )



backup:123456




rsync守护进程

B系统上安装配置rsync




rsync同步操作即可。



B系统上创建一个secrets file,此文件的内容为A系统rsyncd.conf文件中 auth users 选项指定用户的密码,路径随意,只需在执行rsync同步时指定即可。




同步命令如下:



这里要注意参数b,在一些资源性备份中,如图片,视频,文档等,应该加上,否则如果源硬盘数据损坏,就可能导致备份上的数据消失。后果很严重!!!




# /usr/local/bin/rsync  -vzrtopg  --delete  --progress  --exclude "*access*"  --exclude "debug"   
    backup@192.168.12.253: 
    :xxwg  /test  --password-file=/etc/server.pass



600


rsync在每天凌晨3点30分执行镜像备份操作



30 3 * * * /usr/local/bin/rsync  -vzrtopg  --delete  --progress  --exclude "*access*"  --exclude "debug"   
    backup@192.168.12.253: 
    :xxwg  /test  --password-file=/etc/server.pass


crontab文件即可。



/var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察 
     
    
 
    
    
   
/var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。



任务



/var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。


转载于:https://blog.51cto.com/liuer/846125