linux服务器实时同步

rsync是类unix系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

文章主讲实际操作,不再进行详细叙述,想要了解更多可以查看百度百科。

 

一、提前说明:

 

       1)以在两台服务器之间建立定时同步为例,将服务器A  /home/jack 路径下的内容备份到服务器B /home/test 路径下

       2)设置定时同步时间为5分钟

 

二、配置过程:

 

 

服务端(即服务器A):

  1. 安装rsync:yum -y install  rsync
  2. ln  -s  /etc/rsyncd.conf
  3. 编写rsync的配置文件:vim rsyncd.conf

 

解析如下:

    uid = root     

     #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)

    gid = root   

       #root组用户访问

port=873    

    #通过端口873

    use chroot = yes  

  #可以使用chroot

    read only = no   

    #可读写

    max connections = 4

 #最大连接数

    list = no     

     #不列出文件清单

    pid file = /var/run/rsyncd.pid   

    #此步可没有此文件

    timeout = 900

    lock file = /var/run/rsyncd.lock  

   #此步可没有此文件

    log file = /var/log/rsyncd.log   

     #此步可没有此文件

   [backup]               

    #发布项(注意这个命名)

      comment = this is module for backup  #模块介绍,可删去

      path = /home/jack/   

     #发布的路径

      ignore errors

      auth users = root       

      #认证用户为root

          secrets file = /etc/rsyncd.pass 

  #密码文件

 

  1. 编写用户密码文件:echo "root:123" >  

(root:上一步设置的登录用户名;123:文件的密码自己随意设,但要记住,接下来需要用到;此步创建了rsyncd.pass文件)

  1. 修改密码文件的权限(此步很重要,且只能是600):chmod 600 /etc/rsyncd.pass
  2. 启动rsyncd服务

service rsyncd start 

  1. 查看进程占用端口:netstat -tunlp

(启动rsyncd服务后会显示873端口被rsync占用)

 

 

客户端(即服务器B):

  1. yum -y install rsync
  2. echo "123" > /etc/rsyncd/rsyncd.pass

(root:用户名可不写,如果写,必须要和服务端设置的第3步中设置的用户名一致;

123:密码,必写,要和服务端设置的第4步中的密码一致)

  1. chmod 600 /etc/rsyncd.pass
  2. 创建存放备份文件的路径:mkdir  /home/backups

(路径自己随意设)

  1. 每隔5分钟将服务器A中的backup模块目录下的文件(我们设置的是/home/jack)同步到本地下(我们设置的是/home/backups)
  1. ssh-keygen -t dsa -b 1024

然后一路回车即可。

  1. 将id_dsa.pub里面的内容添加到B机的authorized_keys文件中

cat /root/.ssh/id_dsa.pub >> authorized_keys

 

  1. 创建一个需要定时执行的脚本文件,如:rsyncd.sh脚本:vi  /etc/rsyncd.sh

(路径自己设置的),在此脚本中添加如下内容:(命令的每条含义文档最后有解释)

 

rsync -avzP --delete --progress --password-file=/etc/rsyncd.pass root@192.168.22.130::backup /home/backups

 

参数说明:

-a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件);

-z 传输时压缩;

-P 传输进度;

-v 传输时的进度等信息;

--progress 指显示

--delete 指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

root 为用户名

@192.168.22.130为服务端IP

::后面的rsyncd为认证的模块名

/home/test 为备份到本地的目录名

--password-file=/etc/rsyncd.pass 制定密码存放位置的地址

 

  1. 设置脚本执行的时间:crontab -e,添加如下内容

*/5 * * * * sh /etc/rsyncd.sh #第5分钟执行一次同步;

 

 

到此,同步配置基本完成,正常情况下每5分钟就会同步一次

也可直接输入同步命令检查是否能够同步,命令格式为:

rsync命令格式:rsync [option] 源路径 目标路径;

 

例如:

将服务器A  backup模块下要备份的文件同步到本地/home/test目录下:

 

rsync -avzP --delete --progress --password-file=/etc/rsyncd.pass root@192.168.22.130::backup /home/backups

 

            正常情况下,同步成功会显示以上信息。

 

 

补充:(未实践)

文档已经实现了由服务端同步文件到客户端,那么同时也可以由客户端同步文件到服务端,只需要修改5-3步中的命令为

rsync –vzrtopg –progress –progress –password-file=/etc/rsyncd.pass /home/test/ root@192.168.20.20::backup

上面这条命令把本地目录/home/test/目录下的文件上传到服务器backup模块的目录下

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值