Unison - 自动同步计算机

Nat*_*ami 7 sync automation unison

有没有办法使用 Unison 自动同步多台计算机(即主文件夹中的特定目录)?如果没有,是否有替代方案可以做到这一点?我并不完全反对一直打开 Unison 并手动进行同步,但是当它打开时,您必须选择一个配置文件,该配置文件只对应一个目录,因此您必须单独同步每个。此外,IP 地址是动态的,因此必须进行编辑。这很乏味,似乎应该有更简单的方法。我错过了什么吗?有没有办法简化这个过程(可能是一个 bash 脚本)?

Rma*_*ano 5

我的建议是解决动态 IP 的问题(大多数路由器都有地址保留的概念,您可以用它来“修复”计算机的 IP)。之后,您可以使用 unison 的命令行版本:

unison -auto -batch profilename 
Run Code Online (Sandbox Code Playgroud)

您可以将它添加到您的登录/注销脚本或作为 cron 作业。

如果还需要改ip,可以sed在脚本中使用:

  1. ~/.unison, 中创建一个模板文件newprof.tmpl,如下所示:

    root = /home/romano/
    root = ssh://romano@MYIPHERE//home/romano/
    
    path = education
    path = research
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建以下脚本,将其命名为sync_newprof

    #!/bin/bash
    # 
    cd $HOME/.unison
    cat newprof.tmpl | sed s/MYIPHERE/$1 >! newprof.prf
    unison -auto -batch profilename
    
    Run Code Online (Sandbox Code Playgroud)

    基本上,我们创建一个配置文件,使用脚本第一个参数更改 MYIPHERE 词

  3. 现在你可以称之为

    sync_newprof 1.1.1.1 
    
    Run Code Online (Sandbox Code Playgroud)

    它将使用给定的 IP 和同步创建配置文件。