linux文件同步服务器-RSYNC

文件同步 RSYNC

数据同步

         本机:cp、ln、dd、dump、mount     crond

         局域网:scp、sftp、samba、ftp、web

弊端:

1、  本地执行

2、  完整复制,效率低

3、  没有实时同步

 

一、文件同步

1、  核心算法:rsync算法

                            弱校验:32位

                            强校验:128位

2、  构建方式: ssh、rsync

二、SSH同步源

                   同步源:

                            Setfacl      设置访问用户的权限

                            [root@CentOS1 ssh]# setfacl -m u:zhangsan:rwx .

                   发起端:

                            Rsync  -avz 用户@服务器地址:/服务器端目录/本地目录      下行

                   [root@CentOS2 var]# rsync -avz zhangsan@192.168.10.10:/var/ssh//var/ssh-c/

                            Rsync  -avz /本地目录  用户@服务器地址:/服务器端目录     上行

                   [root@CentOS2 ssh-c]# rsync -axz /var/ssh-c/*zhangsan@192.168.10.10:/var/ssh/

三、RSYNC的同步源

                   同步源:

                   vim/etc/rsyncd.conf,写入下面的语句

                            1 port                                                                                                                      

                         2 log file =/var/log/rsyncd.log                                                                         

                         3 pid file =/var/run/rsyncd.pid                                                                         

                         4                                                                                                                              

                         5 [share]                                                                                                                 

                         6    comment = rsync server                                                                        

                         7    path = /var/rsync                                                                                     

                         8    read only = yes                                                                                          

                         9    dont compress = *.gz *.bz2 *.zip                                                        

                          10   Auth users = aa                                                                                        

                          11   secrets file = /etc/rsyncd_users.db(文件必须为600权限)        

                   Vim/etc/rsync_user.db 

                   #新建用户文件,里面写   aa:123456    #(用户名:密码)

                   rsync –daemon

               #以进程的方式去启动

                            netstat –anpt   #查询启动进程

                   tcp     0      0  :::873           :::*     LISTEN  2046/rsync  873端口)

                   发起端:

                            Rsync–avz 用户@服务器地址::共享名 /本地目录

                   [root@CentOS2 rsync-c]# rsync -avz aa@192.168.10.10::share /var/rsync-c/

                            (此处报错是因为rsync_users.db文件的权限,必须要将其修改为600

                                     [root@CentOS2 etc]# chmod 600 rsyncd_users.db

                            Rsync–avz rsync://用户@服务器地址/共享目录/本地目录

                   [root@CentOS2 rsync-c]# rsync -avz rsync://aa@192.168.10.10/share/var/rsync-c/

                            --delete  强制同步 (可以查看到同步源刚刚的操作【镜像】)

         [root@CentOS2 rsync-c]# rsync -avz --deletersync://aa@192.168.10.10/share /var/rsync-c/

四、免密码验证:

                   SSH同步源:

                            [root@CentOS2 rsync-c]# su – client    #切换用户

                                     ssh-keygen  -t  rsa                #生成秘钥对

                            [client@CentOS2 ~]$ ssh-keygen -t rsa                                                         

                            Generatingpublic/private rsa key pair.                                                         

                            Enterfile in which to save the key (/home/client/.ssh/id_rsa):             

                            Createddirectory '/home/client/.ssh'.                                                          

                            Enterpassphrase (empty for no passphrase):                                           

                            Entersame passphrase again:                                                                       

                            Youridentification has been saved in /home/client/.ssh/id_rsa.            

                            Yourpublic key has been saved in /home/client/.ssh/id_rsa.pub.          

                            Thekey fingerprint is:                                                                                         

                            2e:98:46:f3:b7:6d:45:b3:86:4c:17:44:72:01:52:9bclient@CentOS2    

                            Thekey's randomart image is:                                                                         

                            +--[RSA 2048]----+                                                                                               

                            |        ..++=.  |                                                                                         

                            |         . =.   |                                                                                         

                            |          E .   |                                                                                       

                            |          . +   |                                                                                        

                            |    o  So + o   |                                                                                         

                            |   . =.  o +   |                                                                                            

                            |    + o o o     |                                                                                        

                            |   .   oo.      |                                                                                         

                            |        ...     |                                                                                         

                            +-----------------+                                                                                             

                                     ssh-copy-id服务器用户@服务器地址

                            [client@CentOS2~]$ ssh-copy-id server@192.168.10.10                                          

                            The authenticity of host '192.168.10.10(192.168.10.10)' can't be established.  

                            RSA key fingerprint isdc:fa:91:2d:0e:e8:f3:8a:98:5c:28:62:e8:9f:12:2e.               

                            Are you sure you want to continueconnecting (yes/no)? yes                               

                            Warning: Permanently added'192.168.10.10' (RSA) to the list of known hosts.  

                            server@192.168.10.10's password:                                                                                

                   Nowtry logging into the machine, with "ssh 'server@192.168.10.10'", andcheck in:

                                                                                                                                                                                 

                                    .ssh/authorized_keys                                                                                                

                                                                                                                                                                                 

                   tomake sure we haven't added extra keys that you weren't expecting.                         

                            [client@CentOS2~]$ ssh server@192.168.26.251         #登录验证免密码生效

                                     cd/home/client

                                     rsync–avz 服务器用户@服务器地址:/目录 /本地目录

                            [client@CentOS2 ~]$ cd /home/client/                                                          

                            [client@CentOS2~]$ pwd                                                                                 

                                                                   /home/client                                                              

                            [client@CentOS2~]$ rsync -avz server@192.168.10.10:/var/ssh/* .   

                                    

                   RSYNC同步源:

                                     exportRSYNC_PASSWORD=密码

         [root@CentOS2 rsync-c]# export RSYNC_PASSWD=666666         #export声明全局变量

         [root@CentOS2rsync-c]# rsync -axz --delete rsync://aa@192.168.10.10/share /var/rsync-c/

五、RSYNC+INOTIFY(同步和实时监测)

建脚本文件:

  1 #!/bin/bash                                                                                                            

  2 a="inotifywait -mrq -ecreate.delete /var/ssh-c                                           

  3 b="rsync -avz /var/ssh-c/*zhangsan@192.168.10.10:/var/ssh/"          

  4                                                                                                                                  

  5 $a | while read directoryevent file                                                                  

  6 du                                                                                                                              

  7    $b                                                                                                                      

  8                                                                                                                                 

 

 

 

                   免密码验证:

                            ssh-keygen -t rsa

                            ssh-copy-id  zhangsan@192.168.10.10

                           

                            cd/var

                            vim1.sh

                   #!/bin/bash

                   a=”inotifywait–mrq  -e create,delete /var/ssh-c”

                   b=”rsync–avz  /var/ssh-c/* zhangsan@192.168.10.10:/var/ssh”

                   $a| while read directory event file

                   do

                            $b

                   Done

 

         bash1.sh &

                  

                   测试

六、UNISON+INOTIFY

                   服务器1:

                            useraddserver

                            madir/tmp/server

 

                            su– server

                            ssh-keyken –t  rsa

                            ssh-copy-idclient@192.168.10.10

                   服务器2:

                            useraddclient

                            mkdir/tmp/client

 

                            su– client

                            ssh-keyken –t  rsa

                            ssh-copy-idserver@192.168.10.10

                   安装软件(服务器都要做):

                            inotify

                            ./configure&& make install

 

                            unison

                            makeUNSTYLE THREADS=ture STATIC=ture

                            cpunison /usr/local/bin

                   配置脚本:

                            #!/bin/bash

                            a=”inotifywait –mrq  -e carete,delete  /tmp/server”

                            b=”unsion  -batch /tmp/server/  ssh://client@192.168.10.10//tmp/client”

                           

                            $a| while read directory event file

                            do

                                     $b

                            done

 

 

 

 

 

          

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值