精华内容
下载资源
问答
  • 2021-07-12 11:54:19

    在日常的运维工作中,需要保证文件的高可用性,以防单点带来的文件丢失。 根据场景不同,一般会有单向和双向同步两种方式。
    1、双向同步:unison+inotify 用于启动切换的场景
    2、单向同步:rsync+inotify  用于手工恢复的场景
    大多数情况下,都用单向同步即可,如果有问题的话,运维认为手工恢复即可; 如果对恢复的实时性要求不叫高的话,可以用双向同步,出问题的时候,让系统自动切换先用起来,然后再人工维护,不影响正常使用。
    我们来演示一下双向同步环境的搭建和配置。

    1 Unison简介

    Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:
    a.跨平台使用;
    b.对内核和用户权限没有特别要求;
    c.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
    d.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

    示例环境:两台centos7的环境
    vm1 192.168.1.110
    vm2 192.168.1.111


    2、编译并安装Unison

    Linux下通过源码包编译安装Unison时,需要用到Objective Caml compiler。

    2.1 编译和安装ocaml

    [root@vm1 ~]# wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.0.tar.gz 
    [root@vm1 ~]# tar -xzvf ocaml-4.02.0.tar.gz
    [root@vm1 ~]# cd ocaml-4.02.0
    [root@vm1 ocaml-4.02.0]# ./configure
    [root@vm1 ocaml-4.02.0]# make world opt
    [root@vm1 ocaml-4.02.0]# make install

    2.2 编译安装Unison

    [root@vm1 ~]# wget ftp://133.31.130.35/pub/pkgsrc/distfiles/unison-2.48.3.tar.gz
    [root@vm1 ~]# tar -xzvf unison-2.48.3.tar.gz
    [root@vm1 ~]# cd unison-2.48.3
    [root@vm1 unison-2.48.3]# make UISTYLE=text
    [root@vm1 unison-2.48.3]# make install

    2.3 copy unsion到/usr/local/bin

    [root@vm1 unison-2.48.3]# cp unison /usr/local/bin

    3 配置ssh的无密码登录

    3.3.1 同步ssh-keygen生成ssh登录安全密钥对(两台机器上分别执行)

    ssh-keygen -t rsa

    一路回车到结束
    这里将生成一对密钥,id_rsa(私钥文件)和id_rsa.pub(公钥文件),保存在 ~/.ssh/目录下

    3.2 copy公钥并授权

    将id_rsa.pub(公钥)文件的内容,copy到另外一台服务器的authorized_keys 文件中,完成授权

    # vm1 上执行
    cat ~/id_rsa.pub # 获取内容,然后copy
    
    # vm2 的执行黏贴
    vi ~/.ssh/authorized_keys
    
    # vm2 文件授权
    chmod 700 .ssh
    chmod 600 ~/.ssh/authorized_keys
    
    # vm2 重启SSH服务
    [root@vm1 ~]# service sshd restart
    
    # vm2 测试:
    ssh root@vm1

    同样的反向操作,相互授权一下。


    4 设置同步脚本

    示例这里是同步两台机器的nfs文件夹

    vm1 上的脚本(unsion.sh)

    #/bin/sh
    UNISON=`ps -ef |grep -v grep|grep -c inotifywait`
    if [ ${UNISON} -lt 1 ]
    then
        other_server="192.168.1.110"
        src1="/home/nfs/"
        dst2="/home/nfs/"
        /usr/bin/inotifywait -mrq -e create,delete,delete_self,modify,move $src1 | while read line; do
            /usr/bin/unison $src1 ssh://$other_server/$dst2
            echo -n "$line " >> /var/log/inotify.log
            echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
        done
    fi

    vm2 上的脚本(unsion.sh)

    #/bin/sh
    UNISON=`ps -ef |grep -v grep|grep -c inotifywait`
    if [ ${UNISON} -lt 1 ]
    then
        other_server="192.168.1.111"
        src1="/home/nfs/"
        dst2="/home/nfs/"
        /usr/bin/inotifywait -mrq -e create,delete,delete_self,modify,move $src1 | while read line; do
            /usr/bin/unison $src1 ssh://$other_server/$dst2
            echo -n "$line " >> /var/log/inotify.log
            echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
        done
    fi

    然后执行两个脚本,则实现双向同步。

    5 定时检查同步任务(以防进程死掉)

    [unison@localhost ~]# crontab -e
    # vm1
    * * * * * nohup unsion.sh > /dev/null 2>&1 &
    
    # vm2
    * * * * * nohup unsion.sh > /dev/null 2>&1 &

    更多相关内容
  • 由于用户的头像在 PC 端和 APP 端都可以进行更改,所以需要同步台服务器的头像目录,为便可以相互访问。Django 服务器的存储目录为 “/home/django/wwwroot/stores/avatar”,PHP 服务器的存储目录为 “/usr/local...

    由于用户的头像在 PC 端和 APP 端都可以进行更改,所以需要同步两台服务器的头像目录,为便可以相互访问。Django 服务器的存储目录为 “/home/django/wwwroot/stores/avatar”,PHP 服务器的存储目录为 “/usr/local/nginx/html/data/upload/shop/avatar”。我选择了用 “unison+inotify” 的方案来解决,步骤如下:

    保证两台服务器之间可以通过 ssh 无密码访问

    分别在 server1(192.168.1.120)和 server2(192.168.1.121)下,创建秘钥

    [root@template ~]# cd /home/src/

    [root@template ~]# mkdir ~/.ssh

    [root@template ~]# chmod 700 ~/.ssh

    生成 RSA 密钥

    [root@template ~]# ssh-keygen -t rsa

    (然后连续三次回车)

    添加密钥到授权密钥文件中

    [root@template ~]# cd ~/.ssh

    [root@template ~]# ssh "-p 22" 192.168.1.120 cat /root/.ssh/id_rsa.pub >> authorized_keys #小写p

    [root@template ~]# ssh "-p 22" 192.168.1.121 cat /root/.ssh/id_rsa.pub >> authorized_keys

    [root@template ~]# scp -P 22 authorized_keys 192.168.1.121:/root/.ssh/ #大写P

    [root@template ~]# chmod 600 /root/.ssh/authorized_keys

    在服务器 server2 上操作

    [root@template ~]# chmod 600 /root/.ssh/authorized_keys

    分别在两台机器上执行如下测试

    [root@template ~]# ssh -p 22 192.168.1.120 date

    [root@template ~]# ssh -p 22 192.168.1.121 date

    至此用户授权完成。

    软件安装,server1 和 server2 都得安装

    首先安装 ocaml

    [root@template src]# wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.3.tar.gz

    [root@template src]# tar xvf ocaml-4.02.3.tar.gz

    [root@template src]# cdocaml-4.02.3

    [root@template ocaml-4.02.3]# ./configure

    [root@template ocaml-4.02.3]# make world opt

    [root@template ocaml-4.02.3]# make install

    [root@template ocaml-4.02.3]# cd ..

    安装 unison

    [root@template src]# yum -y install ctags-etags

    [root@template src]# wget wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz

    [root@template src]# tar xvf unison-2.48.3.tar.gz

    [root@template src]# cdunison-2.48.3

    [root@template unison-2.48.3]# make UISTYLE=text THREADS=true

    [root@template unison-2.48.3]# cp unison /usr/local/bin

    [root@template unison-2.48.3]# cd ..

    安装 inotify

    [root@template src]# curl -O https://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

    [root@template src]# tar xvf inotify-tools-3.14.tar.gz

    [root@template src]# cdinotify-tools-3.14

    [root@template inotify-tools-3.14]# ./configure

    [root@template inotify-tools-3.14]# make

    [root@template inotify-tools-3.14]# make install

    [root@template inotify-tools-3.14]# cd ..

    到此所需的软件都已安装完毕,可以在 server1 服务器上执行这个命令,来查看两台服务器之间是否可以同步文件

    [root@template src]# unison -batch /home/django/wwwroot/stores/avatar ssh://192.168.1.121//usr/local/nginx/html/data/upload/shop/avatar

    如果这时候抱如下错误:

    [root@template src]# /usr/local/bin/inotifywait: error whileloading shared libraries: libinotify

    可以执行下这个命令:

    [root@template src]# ln -sv /usr/local/lib/libinotify* /usr/lib/

    执行成功后,看目录下的文件是否同步。

    创建.sh 脚本来执行同步

    server1 上创建脚本/root/inotify.sh(chmod a+x /root/inotify.sh) :

    #/bin/bash

    ip2="192.168.1.121"

    src2="/home/django/wwwroot/stores/avatar/"

    dst2="/usr/local/nginx/html/data/upload/shop/avatar/"

    /usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src2 | whilereadline; do

    /usr/local/bin/unison -batch $src2 ssh://$ip2/$dst2

    echo -n "$line" >> /usr/local/logs/inotify.log

    echo `date | cut -d " " -f1-4` >> /usr/local/logs/inotify.log

    done

    server2 上创建脚本/root/inotify.sh(chmod a+x /root/inotify.sh) :

    #/bin/bash

    ip2="192.168.1.120"

    src2="/usr/local/nginx/html/data/upload/shop/avata/"

    dst2="/home/django/wwwroot/stores/avatar/"

    /usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src2 | whilereadline; do

    /usr/local/bin/unison -batch $src2 ssh://$ip2/$dst2

    echo -n "$line" >> /usr/local/logs/inotify.log

    echo `date | cut -d " " -f1-4` >> /usr/local/logs/inotify.log

    done

    最后分别在 server1 和 server2 上执行上面两个脚本,这样两台服务器的目录会保持相互实时同步了!!!

    展开全文
  • 使用多台Linux服务器...但是B服务器上没有,如果其他用户的请求被分配到了B服务器上,那么请求就会变成404,为了避免这类问题,就需要每台服务器之间数据保持实时双向同步。本文主要介绍使用Lsyncd工具在两服务...

    使用多台Linux服务器通过Nginx做负载均衡,根据配置的转发规则,不同的请求会被转发到其不同的服务器上进行处理,那么这个时候就存在一个问题,多台服务器上的数据如何能保持一致,比如:用户在A服务器上传了一张图片,但是B服务器上没有,如果其他用户的请求被分配到了B服务器上,那么请求就会变成404,为了避免这类问题,就需要每台服务器之间数据保持实时双向同步。

    本文主要介绍使用Lsyncd工具在两台服务器上做实时双向同步。

    注意:Lsyncd存在数据被替换风险,操作前请做好数据备份!

    Lsyncd 是一个简单高效的文件同步工具,通过lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。

    首先在两台服务器上分别安装 Lsyncd:

    安装lsyncd依赖包:

    yum install lua lua-devel pkgconfig gcc asciidoc

    安装lsyncd rpm资源,并安装lsyncd:

    rpm -iUvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-9.noarch.rpm

    yum install lsyncd

    复制lsyncd配置文件:

    cp /usr/share/doc/lsyncd-2.2.2/examples/lrsync.lua /etc/lsyncd.conf

    d7d67ae6d9ad7cf1d2fe52d61c191243.png

    查看lsyncd版本:

    1ab5db76c3d9543efc037e56a7cbb847.png

    到这一步lsyncd已经安装好了。

    下面进行两台服务器之间做免密登录设置,互相可以免密登录:

    分别在两台服务器执行下面命令,生成key(以下操作两台服务器都要同时进行):

    ssh-keygen #默认全部回车

    然后执行下面命令:

    ssh-copy-id ip #这里的ip地址为想要连接的那台服务器ip地址,并非本机ip

    命令执行后输入“yes”,然后输入密码,即可连接到第二台服务器,如下图所示:

    45b7ea8f037dc1fd65f8dfd85e27b590.png

    然后执行下面命令测试一下从这台服务器登录到另外一台服务器,不输入密码是否能成功:

    ssh ip

    到这里我们就完成了两台服务器之间互相无密码登录。

    配置lsyncd:

    在A服务器根目录创建创建一个目录“download”,B服务器创建一个目录“public”,进行演示这两个目录互相实时同步。

    编辑lsyncd配置文件:

    vim /etc/lsyncd.conf

    在A服务器配置文件中添加如下配置信息(B服务器同样需要添加,修改下源目录和远程目录即可):

    ----

    -- User configuration file for lsyncd.

    --

    -- Simple example for default rsync.

    --

    settings {

    logfile ="/var/log/lsyncd.log",

    statusFile ="/tmp/lsyncd.stat",

    inotifyMode = "CloseWrite or Modify",

    maxProcesses = 5,

    maxDelays = 1,

    -- nodaemon =true,

    }

    sync {

    default.rsync,

    source = "/download", #源目录,使用绝对路径

    target = "root@116.85.xx.xx:/public", #远程目录

    -- excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",

    rsync = {

    binary = "/usr/bin/rsync",

    archive = true,

    compress = true,

    verbose = true,

    }

    }

    启动lsyncd服务,并设置开机启动:

    systemctl start lsyncd

    启动完成后查看lsyncd状态,确保lsyncd启动成功:

    systemctl status lsyncd

    设置开机启动:

    systemctl enable lsyncd

    启动成功后,我们可以测试一下看看效果,如下图所示:

    fd344a3638c382a76f61b809684fe9c7.png

    (资源库 www.zyku.net)

    展开全文
  • 台服务器间的文件同步是最简单的,也是多台服务器间同步的基础。 笔者参考了一篇使用Unison工具进行文件双向同步的文章,并用自己的实践加以改版 如下 Linux系统间文件双向同步搭建Unison版 一、Unison简介 ...

    两台服务器间的文件同步是最简单的,也是多台服务器间同步的基础。
    笔者参考了一篇使用Unison工具进行文件双向同步的文章,并用自己的实践加以改版
    如下

    Linux系统间文件双向同步搭建Unison版
    一、Unison简介
    Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:
    1.跨平台使用;
    2.对内核和用户权限没有特别要求;
    3.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
    4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

    环境如下:
    vm1 192.168.30.64
    vm2 192.168.30.65

    二、编译安装Unison
    Linux下通过源码包编译安装Unison时,需要用到Objective Caml compiler。
    通过以下方式安装
    [root@vm1 ~]# wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.0.tar.gz
    [root@vm1 ~]# tar -xzvf ocaml-4.02.0.tar.gz
    [root@vm1 ~]# cd ocaml-4.02.0
    [root@vm1 ocaml-4.02.0]# ./configure
    [root@vm1 ocaml-4.02.0]# make world opt
    [root@vm1 ocaml-4.02.0]# make install

    编译安装Unison
    [root@vm1 ~]# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz
    [root@vm1 ~]# tar -xzvf unison-2.48.3.tar.gz
    [root@vm1 ~]# cd unison-2.48.3
    [root@vm1 unison-2.48.3]# make UISTYLE=text
    [root@vm1 unison-2.48.3]# make install

    在执行make install的过程中,可能会出现以下错误提示:
    mv: cannot stat ‘/root/bin//unison’: No such file or directory
    make: [doinstall] Error 1 (ignored)
    cp unison /root/bin/
    cp: cannot create regular file ‘/root/bin/’: Is a directory
    make: * [doinstall] Error 1

    出现错误的原因在与Unison默认是将文件Copy到/root/bin目录,但Linux默认是没有该目录的,因此我们需要将生成的可执行文件unison复制到系统的PATH目录。
    [root@vm1 unison-2.48.3]# cp unison /usr/local/bin

    将可执行文件unison上传到远程主机192.168.30.65
    [root@vm1 unison-2.48.3]# scp unison root@192.168.30.65:/root/
    通过SSH登陆到远程主机,再将unison复制到vm2的PATH目录
    [root@vm2 ~]#cp unison /usr/local/bin

    三、配置ssh key信任
    建议通过普通用户进行操作,理由是通过root操作本身就危险,免密码登陆的root就更危险了。
    我们使用部署 OA应用程序的用户即可,如 我们的应用程序放在了 /home/oa/tomcat7/webapps/下面,我们可以使用oa用户进行登陆
    在两台服务器上创建oa用户的命令
    [root@vm1 ~]# useradd oa
    [root@vm1 ~]# passwd oa

    在vm1上创建key并配置vm2的信任
    [root@vm1 ~]# su – oa
    [oa@vm1 ~]$ ssh-keygen -t rsa
    在提示保存私钥(key)和公钥(public key)的位置时,使用默认值;
    在提示是否需要私钥密码(passphrase)时,直接敲回车,即不使用私钥密码。
    之后,将生成一对密钥,id_rsa(私钥文件)和id_rsa.pub(公钥文件),保存在/home/oa/.ssh/目录下。

    将公钥添加到vm2的 authorized_keys 文件中
    将文件上传到vm2
    [oa@vm1 ~]$ scp ~/.ssh/id_rsa.pub oa@192.168.30.65:/home/oa/

    使用rsync用户SSH到登陆到远程主机,并将公钥添加到 authorized_keys 文件中
    [oa@vm2 ~]$ mkdir .ssh
    [oa@vm2 ~]$ chmod 700 .ssh
    [oa@vm2 ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
    [oa@vm2 ~]$ chmod 600 ~/.ssh/authorized_keys

    同理,执行以下步骤在vm2上创建key并配置vm1的信任
    [root@vm2 ~]# su – oa
    [oa@vm2 ~]$ ssh-keygen -t rsa

    将文件上传到vm1
    [oa@vm2 ~]$ scp ~/.ssh/id_rsa.pub oa@192.168.30.64/home/oa/

    使用rsync用户SSH到登陆到vm1,并将公钥添加到 authorized_keys 文件中
    [oa@vm1 ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys

    重启SSH服务
    [root@vm1 ~]# service sshd restart
    [root@vm2 ~]# service sshd restart

    四、Unison的配置与使用
    直接使用已部署好的应用程序目录进行同步测试,配置前请先对应用程序进行备份。
    在实际部署中可先部署将应用程序部署在其中一台应用服务器上,然后使用同步工具测试时直接进行同步。

    在两台服务器上分别执行一次unison,如果出现提示确认,则直接敲回车选择默认值;
    如果报错提示权限问题请使用chown命令、chmod命令进行相应文件、文件夹的属主及执行权限的变更
    [oa@vm1 ~]$ unison -batch /home/oa/tomcat7/webapps/OA/ ssh://oa@192.168.30.65//home/oa/tomcat7/webapps/OA/
    [oa@vm2 ~]$ unison -batch /home/oa/tomcat7/webapps/OA/ ssh://oa@192.168.30.64//home/oa/tomcat7/webapps/OA/
    如果上述执行顺利,说明双向同步的环境已经搭建起来了,下面就是做一些配置 使文件同步常态化。

    修改两台服务器的unison配置文件,输入以下内容
    [oa@vm1 ~]$ vi /home/oa/.unison/default.prf

    #Unison preferences file 
    root = /home/oa/tomcat7/webapps/OA/
    root = ssh://oa@192.168.30.65//home/oa/tomcat7/webapps/OA/
    #force = 
    #ignore = 
    batch = true 
    #repeat = 1 
    #retry = 3 
    #owner = true 
    #group = true 
    #perms = -1 
    #fastcheck = false 
    #rsync = false 
    #sshargs = -C 
    #xferbycopying = true 
    log = true 
    logfile = /home/oa/.unison/unison.log 

    [oa@vm2 ~]$ vi /home/oa/.unison/default.prf

    #Unison preferences file 
    root = /home/oa/test 
    root = ssh://oa@192.168.30.64//home/oa/tomcat7/webapps/OA/ 
    #force = 
    #ignore = 
    batch = true 
    #repeat = 1 
    #retry = 3 
    #iowner = true 
    #igroup = true 
    #iperms = -1 
    #ifastcheck = false 
    #irsync = false 
    #isshargs = -C 
    #ixferbycopying = true 
    log = true 
    logfile = /home/oa/.unison/unison.log 

    相关注解如下:
    force表示会以本地所指定文件夹为标准,将该目录同步到远端。这里需要注意,如果指定了force参数,那么Unison就变成了单项同步了,也就是说会以force指定的文件夹为准进行同步,类似与rsync。
    Unison双向同步基本原理是:假如有A B两个文件夹,A文件夹把自己的改动同步到B,B文件夹也把自己的改动同步到A,最后A B两文件夹的内容相同,是AB文件夹的合集。
    Unison双向同步的一个缺点是,对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的,因为unison无法判断以那个为准。
    ignore = Path表示忽略指定目录,即同步时不同步它。
    batch = true,表示全自动模式,接受缺省动作,并执行。
    -fastcheck true 表示同步时仅通过文件的创建时间来比较,如果选项为false,Unison则将比较两地文件的内容。
    log = true 表示在终端输出运行信息。
    logfile 指定输出的log文件。

    另外,Unison有很多参数,这里仅介绍常用的几个,详细的请参看Unison手册。
    -auto //接受缺省的动作,然后等待用户确认是否执行。
    -batch //batch mode, 全自动模式,接受缺省动作,并执行。
    -ignore xxx //增加 xxx 到忽略列表中
    -ignorecase [true|false|default] //是否忽略文件名大小写
    -follow xxx //是否支持对符号连接指向内容的同步
    owner = true //保持同步过来的文件属主
    group = true //保持同步过来的文件组信息
    perms = -1 //保持同步过来的文件读写权限
    repeat = 1 //间隔1秒后,开始新的一次同步检查
    retry = 3 //失败重试
    sshargs = -C //使用ssh的压缩传输方式
    xferbycopying = true”
    -immutable xxx //不变目录,扫描时可以忽略
    -silent //安静模式
    -times //同步修改时间
    -path xxx 参数 //只同步 -path 参数指定的子目录以及文件,而非整个目录,-path 可以多次出现。

    PS:Windows下的unison配置文件默认位于C:\Documents and Settings\currentuser.unison目录,默认的配置文件名是default.prf。

    五、测试
    在应用服务器vm1、vm2的 /home/oa/tomcat7/webapps/OA/目录中 新建一个文件
    [oa@vm1 OA]# touch app1.txt
    [oa@vm1 OA]# touch app2.txt

    在vm1上执行unison
    [oa@vm1 OA]# unison

    在vm1与vm2上查看文件是否同步
    [oa@vm1 ~]$ cd ./tomcat7/webapps/OA
    [oa@vm1 OA]$ ls
    app1.txt app2.txt
    [oa@vm2 ~]\$ cd ./tomcat7/webapps/OA
    [oa@vm2 OA]\$ ls
    app1.txt app2.txt

    均看到了“app1.txt app2.txtt”所有文件,说明文件同步已经成功!

    注意:第一次SSH连接的时候可能需要输入一次密码,之后就不需要输入了。

    六、定期或实时执行同步
    如果想要定期执行,则通过crontab计划任务来实现,例如通过以下方式设置每5分钟执行一次
    [root@vm1 ~]# su - oa
    [oa@vm1 ~]$ crontab -e
    /5 * * * /usr/local/bin/unison
    使计划任务生效 需要重启 crond服务
    [root@vm1 ~]# service crond restart

    本帮助文档改编自http://hx100.blog.51cto.com/44326/612301/

    unison这个工具很好用,只要把同步机制及目录设置好,只要在64、65中两台服务器的任意一台服务器执行定时同步任务,就能对文件进行双向同步。

    展开全文
  • 在192.168.50.23与192.168.50.22之间同步/root/rsynctest和/root/rsynctest2文件夹 安装xinetd yum install xinetd 也可以直接使用rsync的daemon模式并设置其开机启动,这样,就不需要安装和配置xinetd了 rsync --...
  • 主旨本文的目的是为了解决两台服务器之间目录差异问题,即可以在A、B两台服务器指定目录写、删任何内容,都会同步到另一台服务器,即实现文件存放、读取高可用。环境服务器信息:node-1:192.168.93.139 node-2:192....
  • 远程同步文件 两台服务器上 内容精选换一换将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式。本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云服务器的操作方法。Windows云...
  • 该程序提供的文件同步功能允许用户在两或更电脑上对指定的文件夹中的文件进行同步更新。小知识:文件的同步更新,就是利用同步更新程序通过网络连接,在各个电脑间创建同步更新关系。使用同步更新软件,我们可以...
  • 对于一个每天面对很重要文件的上班族来说,每天要保存很的资料文件。但是总是担心公司电脑的损坏,造成公司重要资料文件的全部丢失。 最开始没有接触到自动数据备份的方法之前,我跟很朋友一样,都是用个U盘...
  • 服务器使用rsync+inotify实现文件实时双向同步 大概步骤: 1.先实现a->b文件同步,接着实现b->a双向同步 2.主服务器a安装rsync和inotify 3.备份服务器bdz安装rsync 4.启动备份服务器b的rsync 5.启动主服务器a...
  • linux下两台服务器文件实时同步

    千次阅读 2020-12-17 18:57:35
    需要实现172.16.0.1 下的 /opt/profile/ 文件夹下如果有文件更新自动同步到172.16.0.2 /opt/profile/ 文件夹下 实现方式: 通过rsync+inotify-tools结合来实现 需要在源服务器安装软件: rsync(同步软件,源服务器...
  • Unison,由教授设计的linux / Windows程序编写者,可在上使用,以解决源计算机和目标计算机在指定位置上的双向文件同步问题。文件夹有效。 编写此Shell脚本是为了在撰写本自述文件时,在一对新部署的Azure虚拟机下...
  • 多台电脑怎么实现数据同步

    千次阅读 2021-08-13 01:08:29
    多台电脑实现数据同步的方法电脑办公确实给用户提供了很方便,可是很用户缺乏备份的习惯,往往将处理的文件保存到本地计算机,这样电脑一旦出现问题,就会影响我们的资料的使用。为了确保安全,为了方便操作,我...
  • 因为近期项目中需要用到负载均衡,所以查阅了比较的资料,但是大部分文档都差不多的,说的都是相同的内容,所以导致出错都...1.准备两已经配置好环境的服务器,A(源服务器,假设服务器IP:192.0.0.1),B(目标...
  • 我使用Windows Live Sync经过简单设置后,将多台电脑上的文件上传到服务器中,起到了备份的效果。使用远程同步更新功能时,需要在每电脑上安装一个客户端程序,这样远程同步程序通过客户端连接成功后,就可以进行...
  • 广大站长都明白,如何保障网站安全是件很头疼的事。基本上所有的IDC商提供的虚拟主机,都只是每周备份一次。...于是乎,伟大的FTPbox诞生了,这是一款可以将FTP服务器空间与本地数据双向同步的软件,以...
  • 办公室有一 Win10 台式机,主要用来跑代码。由于需要运行一些需要跑很长时间的程序,所以常年不关机,想起来了或者出问题了才重启一下。平时我在办公室,用 USB 对考线连接这两电脑,就可以用一套键鼠控制它们,...
  • ·支持单向同步、双向同步、增量备份、完全备份等各种类型的文件同步与备份方式 ·具有多种任务自动触发模式,能实时、定时、间隙、系统空闲或手动地启动任务 ·强大的容错功能,任务执行时的操作错误自动记录,...
  • Linux系统间文件双向同步搭建Unison版  一、Unison简介  Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison拥有与其它一些同步...
  • mysql数据库双向同步

    2021-01-28 01:21:11
    mysql数据库双向同步的配置过程来说其实很简单,如果不出意外的话,不到十条的命令就可以实现。可是要明白为什么要这么操作、各个参数有什么作用却是很难的,虽然数据库主从配置的文章很,可大部分都是介绍如何...
  • remote为备份服务器的IP和路径配置别名,sgin_xml在后面会有对应的目录。 users为备份服务器的用户,我用的root所以是root。 passwordfile 是密码文件,填入对应的目录和地址即可。 rsync.password配置如下...
  • Linux双向文件同步

    2021-06-20 10:09:59
    网络,SSH相关 Linux服务器之间,ssh互信 ssh-keygen -t rsa #生成本机密钥 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.3.21 #将密钥传送给另一台服务器,可实现本机在另一台服务器上的无密码登录
  • 文章目录数据摆渡系列文章目录一、前言二、使用`rsync` 实现两台服务器文件双向同步1.服务器说明2. `rsync` 安装(两台服务器)3.建立 `rsync` 密码认证文件(两台服务器)4.`rsync` 配置外网 network内网 `intranet...
  • 在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件echo”/usr.../etc/rc.local原文地点:Linux文件双向实时同步rsync+inotify和rsync+sersyncLinux文件双向实时同步有很种解决办法:现介绍两种rsync+inotif...
  • 本博客非常适用于需要在两多台linux服务器做静态资源同步的同学,整个过程简单、实用,另外 inotify + unison稳定可靠。 环境准备 Centos服务器1:139.199.152.84 Centos服务器2:111.230.103.208 指定同步的...
  • 通过 Synology Drive 套件可以将群晖NAS 上的文件与其他设备同步。创建同步任务之前,需要先在 DSM 上安装 Synology ...设定服务器端可作为备份目的地的共享文件夹。在NAS上打开Drive管理控制台。选择团队文件夹,例...
  • 在处理静态内容的时候发现两web上的静态资源需要一致,于是研究使用了下unison,由于unison是需要触发点来触发的,便想到了使用 inotify来处理过程如下:一、两机器:192.168.11.11 vm1192.168.11.12 vm2inotify...
  • 我先说一下业务逻辑需求,公司现在有一app的服务器A,而我后台是放在另外一台服务器B上的,现在需要A服务器上的图片文件夹picture和B服务器上的picture图片文件夹数据同步。  在网上找了很的百度文档、博客、...
  • FolderSync 是一款Android 端的文件同步工具,...可以使用WebDAV连接到坚果云账号,设置自动同步坚果云里的文件到手机里或者将手机本地的文件夹上传到坚果云。1.下载并安装FolderSync下载地址:Play商店等应用商店2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,661
精华内容 3,864
关键字:

多台服务器双向同步文件夹