zoukankan      html  css  js  c++  java
  • linux文件同步工具Unison的使用(转)

    :Unison简介
    *d_,[3X1WM+Q0IXPUB技术博客w {C-G T o
    IXPUB技术博客n+I3L.O&Pkf&d4\X(k
    Unisonwindowsunix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。unison拥有其它一些同步工具或文件系统的相同特性,但也有自己的特点:
    A~vCro&hQ0
    &Ie)jzW W;h0IXPUB技术博客K:O!^2t:^
    跨平台使用;
    ^*]!?w:`3RU| R"o0IXPUB技术博客/m ~!s(t4p9X:|

    f1u A!\p sJ*GaJ0
    对内核和用户权限没有特别要求;
    8\9u.b |e z-E0ZT0IXPUB技术博客M*U@ _ R*z?
    IXPUB技术博客H9J(^8])h
    unison
    是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;IXPUB技术博客 m!kq2Z3Q,A5P

    l])~/WB E^k0
    0a u4ks? J0
    zP#b6v q+T vc0
    只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。
    O/S/T$b t2hQl] B3C0Unison有文字界面和图形界面,这里只介绍如何在文字界面下使用.
    yU_7R&_FBx0IXPUB技术博客Q+l} U0O!V)F n
    :安装unisonIXPUB技术博客|1Z6kRYs(z4u{ `u

    1b2V$rI T+@M `X0B0unison各种版本下载地址:IXPUB技术博客$hxZB"t)@0o
    http://www.seas.upenn.edu/~bcpierce/unison//download.htmlIXPUB技术博客zF#~"U`E
    unison编译器下载地址:IXPUB技术博客2h]�R$tYT
    http://caml.inria.fr/pub/distrib/ocaml-3.10
    ^*H(a {cv$Sul'g-A0其它有用链接;IXPUB技术博客&l_U'UC+{ e(R7Hz)oj
    http://worldhello.net/doc/bcp/unison.html
    wCc @4eti;w0http://www.seas.upenn.edu/~bcpierce/unison//contrib.htmlIXPUB技术博客6t]J%f.fH wB7{
    http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#rshmethIXPUB技术博客 ^tA3vqt
    http://linux.chinaunix.net/bbs/viewthread.php?tid=888250&extra=page%3D1%26amp%3Bfilter%3Dreward
    "b @N6H*H&|%Ry0从以上地址可以下载各种平台,各种版本的unison,有基于源码安装的,有二进制的,我下载的是二进制的,可以直接使用.这里介绍源码安装:IXPUB技术博客f2p�]A;WU"M|
    源码安装unisonIXPUB技术博客.h7N-q(?.R`a Y9K
    Linux下从源码包编译安装,需要一个叫做Objective Caml compiler的工具,版本至少3.0.7,可以从这里下载:http://caml.inria.fr/
    )cd�u K_C0Ocaml安装脚本如下:
    DIP&~r_F0# tar -zxf ocaml-3.09.3.tar.gzIXPUB技术博客8^U.j8]&`
    # cd ocaml-3.09.3
    :z u PCE:d~D u0# ./configureIXPUB技术博客E+nUl O0J
    # make world optIXPUB技术博客%kL9z)Gu P\
    # make installIXPUB技术博客 l/kH R"htYo^VM
    Unison对版本要求很高,进行同步的两台主机需要相同版本的unison,所以这里使用和windows一致的版本2.13.16unison-2.13.16.tar.gz
    (V5tB7Q&|$su I3x"W0安装脚本如下:
    k`,kBT$\j%TW0# tar -zxf unison-2.13.16.tar.gzIXPUB技术博客/TmP*T g
    # cd unison-2.13.16IXPUB技术博客l&w` gs0vq
    # make UISTYLE=textIXPUB技术博客v7qE5Li|[
    # make installIXPUB技术博客[/M_!w6xZ R
    之后将生成可执行文件unison,将其cp到系统PATH即可。IXPUB技术博客g-r?3yC
    # cp ./unison /usr/local/binIXPUB技术博客,]Qdo}]W`0L c*j
    IXPUB技术博客tv*w'K,ES$K9R ~
    :配置双机ssh信任IXPUB技术博客#yN&`)ow2Zv.X N)O
    IXPUB技术博客9IQf}3II

    *Y[nLC-Y Mv0由于unison在远程同步文件夹要登陆远程服务器,因此要配置两机互相信任
    G#T$FYw*Neq0本例假设本地机为:10.178.1.132(linux)
    xQY&e8m+N|?5C9i0IXPUB技术博客E0{a+aYKL%mt
    远程机:10.178.1.110(solaris)IXPUB技术博客Ls-W)z6Ji
    1.IXPUB技术博客Z4X}.v�lW-Vs W
    在两台机器上创建RSA密钥
    k E(Pr8N4L'x0以下操作要在本地机和远程机上都执行一遍IXPUB技术博客x(?{fed
    IXPUB技术博客2x\�kSj.t2TIU)b
    1)以root用户登录
    v&kK-~\r u0^p;E0IXPUB技术博客#gm%N+_?-dO
    2)在root用户的
    :W v;k [/y+x'T0r0主目录内创建.ssh目录并设置正确的权限IXPUB技术博客%vb%BB:fD
    IXPUB技术博客0H)ZPX0p qO&o
    [root@gsgatzhapp1 ~]# mkdir ~/.ssh
    IXPUB技术博客i:_xn YgD)~M

    [6|Ca Lrf,y$W{E4yg0[root@gsgatzhapp1 ~]# chmod 700 ~/.ssh
    IXPUB技术博客 dN g]4c:xr8w2R

    zGi o$P4~/SK9s3v0
    3)使用ssh-keygen命令生成第2版本的SSH协议的RSA密钥
    dFj~N8L0IXPUB技术博客PTeI@{
    [root@gsgatzhapp1 ~]# ssh-keygen -t rsa

    5s0p8v,Bq:pA0IXPUB技术博客(q?A4t+}2qu
    Generating public/private rsa key pair.

    ocM `(|#R&r|0b0
    'Q{gTas!h0Enter file in which to save the key (/root/.ssh/id_rsa):
    IXPUB技术博客 O,i,J�Bssx~%[&I

    ;F,FLpq:_S_0Enter passphrase (empty for no passphrase):

    Ju2sX wJ$lew0IXPUB技术博客c2]D8{5ic} ^
    Enter same passphrase again:

    9Yj _Z[*A0IXPUB技术博客z%MHqt^4{
    Your identification has been saved in /root/.ssh/id_rsa.

    ,]Ak)Mx@*pL0
    !qw]rq;u&u0Your public key has been saved in /root/.ssh/id_rsa.pub.
    IXPUB技术博客 K5AG ~a

    (t,AL i(ew9Tg5w+L:`0The key fingerprint is:
    IXPUB技术博客 }`@er*O&s,j
    IXPUB技术博客8\`B#v.^9J1P^K
    17:e4:7c:79:8d:a0:00:3b:d9:f7:7a:56:f3:ac:54:4d oracle@gsgatzhapp1
    IXPUB技术博客'L9w5I;H4GZZ1Q J
    IXPUB技术博客%M;q�njZ/R7TzQ
    在提示保存私钥(key)和公钥(public key)的位置时,使用默认值。IXPUB技术博客7g4A1nLs*y
    如果需要私钥密码(passphrase),则输入一个私钥密码(如果使用私钥密码,使用ssh执行远程命令时需要输入私钥密码,因此,本案例中未使用私钥密码),因此,直接回车即可。IXPUB技术博客"HJ?&i R

    { ]UWB,m02.
    添加密钥到授权密钥文件(authorized key file)中
    ,UF@l)c!{0
    Oe m9t\,y#x0
    1)以root用户登录
    IP"f5W,QY6yA0
    }lZ1N1g!qQ)vJ#p:g)O3xm0
    2)在本地机上执行
    8UV`-Ya0IXPUB技术博客S)P6z9o"t/{]
    [root@gsgatzhapp1 ~] # cd ~/.ssh

    ~vZq�P%q;Vp0
    gm+}&w/nk+Tr'R0[root@gsgatzhapp1.ssh]#ssh 10.178.1.132 cat /root/.ssh/id_rsa.pub >> authorized_keys
    IXPUB技术博客1SlU/r8G#B.nNR

    k} v` [.}lm0[oracle@gsgatzhapp1.ssh]#ssh 10.178.1.110 cat /root/.ssh/id_rsa.pub >> authorized_keys
    IXPUB技术博客(cp["_+j`

    (t6hdCf?-Kj ]0[oracle@gsgatzhapp1.ssh]#scp authorized_keys 10.178.1.110:/root/.ssh/

    -|WJZ�{v s8kX;m0[oracle@gsgatzhapp1 .ssh]# chmod 600
    ]8ay@b%d6S0/root/.ssh/authorized_keys

    "f+| b^ iZY0Dm/c03)在远程机10.178.1.110上:
    'jEM?tKPAKVx0
    8}nkNU}G0UA6Q?0bash-2.05# chmod 600IXPUB技术博客7Q]0|Ky
    /root/.ssh/authorized_keys

    Jh-u G'Y#]0IXPUB技术博客1zS\(|2zc$]
    4)测试IXPUB技术博客o0}*Z�e qEs

    -` S\L'R^0
    完成后,在gsgatzhapp1上执行:
    `U�n2b'Cxn N/oQ0
    hy&p m.v5l e0[root@gsgatzhapp1 ~]# ssh 10.178.1.132
    $T�x)p%lX"Ri.o0date
    IXPUB技术博客 r$Xk_�?.?fS3C

    SCir;p ^b0[root@gsgatzhapp1 ~]#ssh 10.178.1.110 date
    IXPUB技术博客(g1d0U#a8}Y
    IXPUB技术博客A'm'xAzIU%MA1NY
    如果不需要输入密码就出现系统日期,说明SSH配置成功。IXPUB技术博客!axk2J3yE?
    IXPUB技术博客+G q|0o_2gNk

    g Y9EKGR�B0:unison的使用
    +H:a/E5L#k!O)_3v}M0IXPUB技术博客)R-~1Bl5YO#x:|.[

    0Y^3t&Ed0Unison可以在一台主机上使用,同步两个文件夹,也可以在网络上是用。
    cvJl]]"J01:本地使用
    'vrX�bi1T|0使用方法
    6N![ [YA e0#unisonIXPUB技术博客,z J$C1c;B;L Qf2_
    111 222IXPUB技术博客 cdAaU,pM8k
    #
    同步本地的111222文件夹IXPUB技术博客#E7V"XcY&{^:\ B'e
    Contacting server...IXPUB技术博客.\E*ub+H
    Looking for changesIXPUB技术博客c6x&qQN0Y-d d2Sm
    Warning: No archive files were found for these roots.IXPUB技术博客?-_:E5~ {Bl
    This can happen either

    lY K^7n5?x(w0because this is the first time you have synchronized these roots,IXPUB技术博客 }t6pui0BLh
    or because you have upgraded Unison to a new version with a different
    0kym`)B9f4G0archive format.
    7m7~V/`vK/J!w_4v0q0
    IXPUB技术博客4D Ki4XdxR{v+ms
    Update detection may take a while on this run if the replicas are
    -?)jm&h7KV(^X0large.
    YC"xy j1P1oc0Unison will assume that the 'last synchronized state' of both replicasIXPUB技术博客 C6vZ!^cUza
    was completely empty.IXPUB技术博客'S:p4SJ F
    This means that any files that are different
    IXPUB技术博客 m;Sc*I+LEH
    will be reported as conflicts, and any files that exist only on one
    a!Q J z�A b0replica will be judged as new and propagated to the other replica.
    1F?h'Z2eyw&@.y0If the two replicas are identical, then no changes will be reported.IXPUB技术博客xm O�W�u:y.Q4J
    Press return to continue.[<spc>] Reconciling changes
    ]n:M M!U0S0111
    3]D1R ?1P�meScE0222IXPUB技术博客3@bT0b5p
    IXPUB技术博客$Z1w,{,v_n p"| Ed t
    IXPUB技术博客�l9O%n-[-h4G
    <---- fileIXPUB技术博客 H A e"~4Fl'O4aC`
    aaaaaaaaaaaaaIXPUB技术博客2I�P+J{9^ J7xN2iY
    [f] ?

    U8H%n TY1f-_"P3p0Commands:IXPUB技术博客o iz:C+O+s

    h3Q^/s2};Zqz2B)B0<ret> or f or <spc>IXPUB技术博客7J"G YN'Kl%H^
    follow unison's recommendation (if any)

    *G9W&L8j5j9q0IXPUB技术博客 uv2GR(UtF
    I
    %KY,B*q jB WT0ignore this path permanently
    IXPUB技术博客f(Xx~7w

    W7rH�s-K(F e*f.}-c0EIXPUB技术博客3S,Z[;eHi/H!s!b
    permanently ignore files with this extension
    IXPUB技术博客#Y4Rh;H:\
    IXPUB技术博客V2fi?@ lz
    N
    JA*g q!E%t0permanently ignore paths ending with this name

    m(K'@J!LQ;Q0IXPUB技术博客4kt+XkA0v3@
    mIXPUB技术博客FG/n8R-?hP|/{
    merge the versions
    IXPUB技术博客7VY_j#`

    #t7ih9Op~+mLv'nu-O/G0dIXPUB技术博客4INa~Wue"mH UU0i
    show differences
    IXPUB技术博客V(v:Y.`)EjU*X
    IXPUB技术博客D2?~9Rd,~e
    x
    z q1CA@'i#m f'O0IXPUB技术博客&~*mh[7L)^*MY
    show details
    IXPUB技术博客(k+e3Km$h)Q+r2_
    IXPUB技术博客/w{L,H7Y"p W
    lIXPUB技术博客0q9^;V*hbOGw3I�JE
    list all suggested changes
    IXPUB技术博客$~i&Tw/p l'o

    6Sj4]*d i0p or b
    :i,x&W;u*^)B:rq*iC0go back to previous item

    y&Yb7XL%H%m&P7?p0
    6M.P�@'q;R UAG0gIXPUB技术博客Y:S] k9j7a;O!|
    proceed immediately to propagating changes
    IXPUB技术博客*_ o+s_:eKL T

    $c L2^ o(w7S/F@0q
    m7V)g*^V\$] Zt4^.vv0exit unison without propagating any changes
    IXPUB技术博客%g#L]*e#V~ Q
    IXPUB技术博客.I kPAS}aP6B

    #u%oM\"bK-Iww0/
    |5u!D8}!@2D9y/H0skip
    IXPUB技术博客'q%[-@ \{Z+|mI
    IXPUB技术博客$?OrC,t"D@)p
    > or .
    *Pg4`.C!q`g"A(zAS+`B0propagate from left to right
    IXPUB技术博客QW9W)Ebs�b1]N
    IXPUB技术博客i'H.X khz
    < or ,
    *G0nMUy0propagate from right to left

    X^bCe\#t5G0
    _�U c z6u d H2S e)S0<---- fileIXPUB技术博客qoMAPBj
    aaaaaaaaaaaaaIXPUB技术博客E0w Il'ioj
    [f] f
    IXPUB技术博客lY1L7NymeJ�Ee2E
    IXPUB技术博客 mH+l%x H9E0_!po
    Proceed with propagating updates? [] yIXPUB技术博客RE'[D)}qI+{
    Propagating updates
    .v]sM2| J+v0
    ${T!MbCe)_0UNISON started propagating changes at 15:06:08 on 27 Aug 2007IXPUB技术博客o)KO3D5tNl
    [BGN] Copying aaaaaaaaaaaaaIXPUB技术博客6WM6_L9T q

    &|A*?j5`{2v0from /222
    IXPUB技术博客 Rn-x+cn9j�^pG f
    IXPUB技术博客x!|5k|4q8d z,Vc_+^
    to /111

    $}6JhD W5~~0[END] Copying aaaaaaaaaaaaa
    2Z!?4]A?I'@8mx$r0UNISON finished propagating changes at 15:06:08 on 27 Aug 2007IXPUB技术博客YXf"X {jB0NN
    Saving synchronizer stateIXPUB技术博客;K!g!uM6lK8\
    Synchronization completeIXPUB技术博客 FXF#OLM
    (1 item transferred, 0 skipped, 0 failures)
    IXPUB技术博客C+IrvT
    如果检测到两个文件夹有所不同,unison会提示,让你选择相应的操作。如上例所示.IXPUB技术博客5t;L#H"hY#LjS|
    表示右边222的文件夹有新的文件,是否同步到左边的111文件夹,f表示force,然后将确认,进行更新,如果输入?会有更详细的介绍。IXPUB技术博客/o%UQ\e:|
    2: unison远程使用IXPUB技术博客zo2lo5B4_'HW
    使用方法:IXPUB技术博客nfVG�p u
    # unison <本地目录> ssh://remotehostname(IP)/<远程目录的绝对路径>
    z+ii1w/fm0例如:
    D9mz(I!l7L"v'R-pf0# unison /home/AAA ssh://username@remotehostname(ip)//DB/path/BBB
    *e t!yq5|.S-r0表示将本机的目录/home/AAA和远端主机的/DB/path/BBB进行同步。一般的,需要两台机能ssh连接。IXPUB技术博客 UJ&aT[_y
    注意IXPUB技术博客dz8y'A Bw:k5iw8Q
    在主机和目录间又多加了一个"/"
    O6n iA1k-E7i Iw03:unison参数说明IXPUB技术博客3^F3|2\N(b4}%v
    Unison有很多参数,这里只介绍经常使用的几个,详细的请参看unison手册:
    5T6Zq PL�JzD|0"IXPUB技术博客%oj P0U5NSzq
    -testserver

    QHZk!^~(HELaH2i0测试连通性,连接到服务器即退出。示例:
    $p6f7d5K&?(Sa0$ unison / ssh://opensou1@bluehost/IXPUB技术博客 |!RX.U{[6v:C+BJ
    -servercmd=~/bin/unison -testserver
    IXPUB技术博客,j0FG SmVox$C
    如果服务器端unison可执行文件不在默认目录下,甚至没有unison命令(需要你编译一个上传到服务器),则需要使用-servercmd参数告诉要执行的服务器unison命令位置。IXPUB技术博客y~\^V@(U s&i
    使用-testserver参数,则成功链接即退出,也不会去执行目录的比较等后续操作。
    }8MjYg%z�P-^0"
    obM+@i0-servercmd xxx
    IXPUB技术博客h k)k._#n A4{
    告诉unisonIXPUB技术博客L&oD;A!KmBS ?,tF i
    服务器端的unison命令是什么。参见上面的示例。
    1N a5nV"j _v[F]0"IXPUB技术博客H ?.n`'k
    -auto
    IXPUB技术博客+u#_m+r0~m4^&B3qb
    接受缺省的动作,然后等待用户确认是否执行。
    2U?o*Vs7TQ q({Y0"IXPUB技术博客 C7~\^ROA1~
    -batch
    IXPUB技术博客j;F e"[:S`sx$[
    batch mode,全自动模式,接受缺省动作,并执行。IXPUB技术博客cV:D'x*|"EG
    "
    $g B|^'A/EV0-ignore xxx
    IXPUB技术博客]9I]#{otwS}
    增加xxx到忽略列表中IXPUB技术博客 FvsPC9g(`
    "
    '{2Vd2y!R+z`w0-ignorecase [true|false|default]

    O rV+mI GG0R0是否忽略文件名大小写
    f*~,w&r9e0]7\0"IXPUB技术博客rH G+M%qFU/TX
    -follow xxx

    I IB%}"`t s0z0是否支持对符号连接指向内容的同步IXPUB技术博客js5e9EC"H5{kjB
    "IXPUB技术博客qw9R0F#c%N.D%N"v
    owner = true (
    保持同步过来的文件属主)IXPUB技术博客I9[7M�_ j*ht;I
    "
    H+T(c| nO!E!J%qJh8F0group = true (
    保持同步过来的文件组信息)IXPUB技术博客%KetZ*| j
    "IXPUB技术博客K&{8F2W9Mk`0l5Y
    perms = -1IXPUB技术博客c,?Ac!}\6a V5m
    (
    保持同步过来的文件读写权限)IXPUB技术博客#Qja5dLT@@
    "IXPUB技术博客e5_l ?;F;h,y9F1pw:N
    repeat = 1
    ;G%]9A@p(k*k0(
    间隔1秒后,开始新的一次同步检查)
    +}]?�Flc:d Y0"
    )Y k.kko0retry = 3IXPUB技术博客`}6w%DY1m"bg9\a
    (
    失败重试)
    \6P iL n t Oj }0"IXPUB技术博客#D `l,?*y-|LoK5{
    sshargs = -C (
    使用ssh的压缩传输方式)IXPUB技术博客 S W,U3Z�M FB
    "
    v5tPOyw&n |0xferbycopying = true

    ?+y4U g Y,HS0IXPUB技术博客 r/l `\ ?3l#u3Jo
    "IXPUB技术博客A(e"B"V/~F@I4G X6o
    -immutable xxx

    L5T }U?5AOM0不变目录,扫描时可以忽略IXPUB技术博客�|QVYlHm9}�cFF
    "
    ;PACD8rn:o0-silent
    IXPUB技术博客Gg Zq�GstM
    安静模式
    e^!Q/SR b8R0"
    \I'v+K?PT0-times

    h ? eL _;Z:[o0同步修改时间IXPUB技术博客 A"sa7Tf8pr Y/H
    "IXPUB技术博客td&RO1T!l
    -path xxx
    参数
    ;I G5y0CS\aZJ5QA0只同步-path参数指定的子目录以及文件,而非整个目录。-path可以多次出现,例如IXPUB技术博客\l A l4aV?
    IXPUB技术博客EZs s [E0SV
    unison /home/username ssh://remotehost//home/username \
    IXPUB技术博客 V~/Tg"q*z[

    +S"s Wr*a5y0-path shared \
    IXPUB技术博客5RZ[ri ~ V,[
    IXPUB技术博客GV2AN&A2yo%Z_5B
    -path pub \
    IXPUB技术博客t+B-FSS,ZFQ

    jT+X:`"G3J3N*x6u$H+gGV0-path .netscape/bookmarks.html
    IXPUB技术博客4Y/ec,Im4e5r�gw
    4:通过配置文件来使用unison
    O f3v n;\9E6N3G$s+d0尽管可以完全通过命令行的方式来指定unison运行所需要的参数,但我们还是推荐使用配置文件来进行配置使用unison,原因很简单,看配置文件比看命令行容易理解,而且可管理性更强。
    1R\.d*R Rg2[0默认的配置文件夹位于~currentuser/.unison,即当前用户的home目录下,windows则位于C:\Documents and Settings\currentuser\.unison,默认的配置文件名是default.prf.
    4LS K i v0运行这样的命令:
    W$]/VQv"bW` XQ0#unison exitgogoIXPUB技术博客0c_7?_(t p5x
    Unison将默认读取~currentuser/.unison/exitgogo.prf文件里的配置信息.我的配置信息在/root/.unison/exitgogo.prf,因此我们可以根据上面参数的介绍,把所有的参数配置信息写入到一个.prf的文件中.
    P6S:ln4{ Eet0下面是我的一个web应用中两个文件夹同步的配置信息:
    +mA2_p#~7W?0root = /sina/webdata
    "?8Hj7Ji2h| g"l2C0root = ssh://root@192.168.60.121//sina/webdata
    "{/_,@ oX1B EHQ)bhU0#force =/sina/webdata
    Uc8Q7V)gae5~0ignore = Path as/*IXPUB技术博客J'TC:cO_z
    #prefer = ssh://root@192.168.60.121//sina/webdataIXPUB技术博客\ Y)e RC2X/lH3rtz
    batch = true
    1c%w)c nUu;K}0#repeat = 1IXPUB技术博客n6\,I\b)]w
    #retry = 3IXPUB技术博客i @�~0f9Ov ^'h#qN T
    owner = trueIXPUB技术博客V7N%^.VJ p3j5bA&J
    group = trueIXPUB技术博客U%i(k zK9W}8_ }/\3A
    perms = -1IXPUB技术博客 U6_%AY4j"Y)U7g)U
    fastcheck=falseIXPUB技术博客;u!MYGW6Z)Z
    rsync =falseIXPUB技术博客$UY+c�Q d,U"i8LGx
    #debug=verboseIXPUB技术博客pTtF U ICuO
    sshargs = -C
    $u8A-r&A'}V;W8b!m0xferbycopying = true
    x0N'S7?_(v)h!E6|z0log = true
    C `)g+Uut U&}0logfile = /root/.unison/sina_122.1547.logIXPUB技术博客G_Lr$[j {
    说明如下:IXPUB技术博客8ggp U)M _
    两个root表示需要同步的文件夹IXPUB技术博客�S!A Ek6KWp,m
    force表示以本地的/var/www/bbsnew文件夹为标准,将该目录同步到远端。注意,如果指定了force参数,那么unison就变成了单项同步了,也就是说会以force指定的文件夹为准进行同步.IXPUB技术博客K�K5D5t0om6A6h,s'|
    Unison本身是可以双向同步的,但是要做到双向同步,就不要设置force参数,如果设置了force参数,就成了单项同步了,此时unison类似与sync.IXPUB技术博客(WE TN*Ya
    Unison双向同步基本原理是:假如有A B两个文件夹,A文件夹把自己的改动同步到B,B文件夹也把自己的改动同步到A,最后A B两文件夹的内容相同,A B文件夹的合集.
    *| c9E2@SY%o0Unison双向同步的一个缺点是,对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的,因为unison无法判断以那个为准.IXPUB技术博客aaq:L5U;nF*IV
    ignore = Path表示忽略/sina/webdata下面的WEB-INF/tmp目录,即同步时不同步它。
    :I[qPtRB0K0batch = true,表示全自动模式,接受缺省动作,并执行IXPUB技术博客3iGd?7H9u\Iyzxb
    -fastcheck
    AB_"I` ?`g?0true
    表示同步时使用文件的创建时间来比较两地文件,如果这个选项为falseunison则将比较两地文件的内容.建议设置为true
    F#{/B/T7Y0log = true表示在终端输出运行信息。IXPUB技术博客 h-^N5F7|;\P
    logfile则指定了同时将输出写入log文件。
    U7u,E"wA O&z!h:T0IXPUB技术博客X#{8~(}B6Q+^
    IXPUB技术博客'WOV4yd:ceq
    :unison FAQ
    5_l!x|M/Mz$j0IXPUB技术博客h1Slp L]%Th
    如何在和远程服务器同步大量数据,上传一部分数据后,超时:IXPUB技术博客:W?X E~@d
    9%IXPUB技术博客)u2O)K-L2_G ry
    559:15 ETARead from remote host bluehost: Connection reset by peer

    ]1gj#K?;L&uZ0Fatal error: Lost connection with the server
    t1w Q|%Y$z5XA _0实际操作中,最好的方法是,第一次先把要上传的文件打成包,用ftp上传,然后展开到服务器中,之后执行一次unison同步即可。

    aliyun活动 https://www.aliyun.com/acts/limit-buy?userCode=re2o7acl
  • 相关阅读:
    Python
    Python
    Python
    Django REST framework
    Django REST framework
    Django REST framework
    Django REST framework
    jquery.unobtrusive-ajax.js的扩展,做到片段式加载
    jquery.unobtrusive-ajax.js单独的用法
    不复杂的Autofac注入
  • 原文地址:https://www.cnblogs.com/wangbin/p/1494452.html
Copyright © 2011-2022 走看看