使用unison 同步文件

一、系统环境
192.168.1.2:

# uname -a
Linux s2 2.6.18-128.el5 #1 SMP Wed Dec 17 11:42:39 EST 2008 i686 i686 i386 GNU/Linux
# lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: #RedHatEnterpriseServer
Description:    #Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Release:    5.3
Codename:   Tikanga

#已安装etags

192.168.1.23

# uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] 2.61]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:    6.5
Codename:   Final

#未安装etags,需用yum安装

已配置双机ssh信任。(略去配置过程)

二、安装ocaml-3.10.2

# tar zxvf ocaml-3.10.2.tar.gz 
# cd ocaml-3.10.2
##需删除man1,不然会报错
# rm -rf /usr/local/man/man1
#  ./configure 
# make word opt
# make install

三、安装unison-2.32.52

# tar zxvf unison-2.32.52.tar.gz
# cd unison-2.32.52
#  make UISTYLE=text THREADS=true STATIC=true
# cp unison /usr/local/bin/

四、测试连通性

# unison / ssh://192.168.1.23/ -testserver

五、示例

# vim /root/.unison/1.2_ftp.prf
#2016-05-17
#back up /var/ftp/pub to 192.168.1.23:/home/databack/1.2_ftp 
root = /var/ftp/pub
#root = /tmp/unison2
root = ssh://[email protected]//home/databack/1.2_ftp
force = /var/ftp/pub
#force = /tmp/unison2
batch = true
maxthreads = 100
#repeat = 10
retry = 3
owner = true
group = true
times = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
confirmbigdel = false
log = true
logfile = /root/.unison/1.2_ftp.log

## 默认读取配置文件目录:/root/.unison或~/.unison

#/usr/local/bin/unison 1.2_ftp

六、unison参数详解(网络)

-testserver

测试连通性,连接到服务器即退出。示例:

 # unison / ssh://[email protected]/ -servercmd=/usr/local/bin/unison -testserver

如果服务器端 unison 可执行文件不在默认目录下,甚至没有 unison 命令(需要你编译一个上传到服务器),则需要使用 -servercmd 参数告诉要执行的服务器 unison 命令位置。

使用 -testserver 参数,则成功链接即退出,也不会去执行目录的比较等后续操作。

-servercmd xxx

告诉 unison, 服务器端的 unison 命令是什么。参见上面的示例。

-auto

接受缺省的动作,然后等待用户确认是否执行。

-batch

batch mode, 全自动模式,接受缺省动作,并执行。

-ignore xxx

增加 xxx 到忽略列表中

-ignorecase [true|false|default]

是否忽略文件名大小写

-follow xxx

是否支持对符号连接指向内容的同步;

例如在我的 ~/.unison 的配置文件 default.prf 中有

# Unison preferences file follow = Path {unison_*} ignore = Path {WWWROOT/wiki_mirror} ignore = Name {,.}*{.~$lock} ignore = Name {a.out}

我将预进行同步的系统文件在 xxx/src 下分别作符号链接,如 unison_httpd.conf 指向 c:/program files/apache/.../httpd.conf。 同步时,"follow = Path {unison_*}" 配置(或参数)将跟踪符号链接指向的实际文件。 如果没有该设置,符号链接不予同步。

-immutable xxx

不变目录,扫描时即忽略

-silent

安静模式

-times

同步修改时间

-path xxx 参数

只同步 -path 参数指定的子目录以及文件,而非整个目录。例如

unison /home/username ssh://remotehost//home/username \ -path shared \ -path pub \ -path .netscape/bookmarks.html

时间: 2024-10-19 15:31:46

使用unison 同步文件的相关文章

Linux下利用Unison实现文件双向同步

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

Unison双向同步文件

Unison优点有很多,支持跨平台,同步的算法和Rsync算法类似,唯一震撼我的是可双向同步文件的这个功能,还可以本地两个文件夹的同步. 1.安装编译器Ocaml 下载地址:http://caml.inria.fr/pub/distrib/ocaml-3.10          cd ocaml-3.10          ./configure          make world opt          make install 2.安装unison 下载地址:http://www.se

Linux下 Unison 实现文件双向同步

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hx100.blog.51cto.com/44326/612301 一.Unison简介Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致.Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:1.跨平台使用:2.对内核和用户权限没有特别要求:3.Unison是双向的,它能

sersync实现多台服务器实时同步文件

基本架构 如上图所示,线程组线程是等待线程队列的守护线程,当队列中有数据的时候,线程组守护线程逐个唤醒,当队列中inotify事件较多的时候就会被全部唤醒一起工作.这样设计的目的是能够同时处理多个inotify事件,重发利用服务器的并发能力(核数*2+2). 之所以称之为线程组线程,是因为每个线程在工作的时候,会根据服务器的数量建立子线程,子线程可以保证所有的文件与各个服务器同时同步,当要同步的文件较大的时候,这样设计可以保证各个远程服务器可以同时获得要同步的文件. 服务线程的作用有三个,首先是

求个可以同步文件夹的手机APP,类似sugarsync

@小众软件 求个可以同步文件夹的手机APP,类似sugarsync(收费[泪]),设置了某个文件夹为同步文件夹,进文件管理器去新增删除文件会同步到云端....电脑上同步盘很多的什么Dropbox,快盘之类的.但他们的手机端都不能设置手机里的某个文件和云端同步. http://weibo.com/seafile?is_hot=1 sugarsync的功能比较: https://www.sugarsync.com/en/compare https://www.sugarsync.com/dropbo

更改OneDrive同步文件夹

很无奈,自己的硬盘出现了一些小情绪,不能愉快的玩耍了.所以,我需要将我的文件进行转移. 本地文件还好,但是有一个问题——自动同步的OneDrive.总不能说以后每次同步还是原来的文件夹吧? 在OneDrive的设置里面找了一下,并没有转移文件夹的功能. 那么,这个同步文件夹就没有办法转移了么? 非也! 在资源管理器中,亦是可以对OneDrive的位置进行管理的. 在OneDrive上右键,选择最后一个选项"属性",在弹出的窗口中切换到"位置"标签栏,点击"

CentOS 6.x中用rsync远程同步文件

CentOS 6.x中用rsync远程同步文件 系统环境:Centos 6.9 x64  目的: 服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份. 将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端. 一.服务器端的配置 在源服务器110.112.200.12中配置 [[email protected] test]#  yum -y install xinetd rsync 再修改

20.31 expect脚本同步文件;20.32 expect脚本指定host和要同步的文件;20.33 构建文件分发系统;20.34

20.31 expect脚本同步文件 自动同步文件 1. 同步远程机器hao2上/tmp/12.txt文件 到本机/tmp/下: [[email protected] ~]# vim 4.expect 添加内容: #!/usr/bin/expect set passwd "admin" spawn rsync -av [email protected]192.168.211.129:/tmp/12.txt /tmp/ expect { "yes/no" { send

Windows下自动同步文件的小脚本

分享两个自己整理的在windows下自动定时同步文件的bat小脚本 (照猫画虎 o(∩_∩)o ) ******************************************************************* @echo off color 02 rem 使用goto和lftp来实现定时自动上传文件到ftp服务器指定目录         ##注释信息 :loop echo.   echo.   echo =================================