标签: synchronization

是否有一种工具可以连接到两个目录并在发生变化时立即同步它们?

我在两台机器server上有巨大的模拟目录cluster,我想在它们上保持同步。基本情况是文件很少更改,但是当模拟完成时,许多大文件会立即更改,我希望在它们关闭后立即同步。

因此,我认为使用 rsync 的 cronjob 并不理想,cronjob 因为它以固定的时间间隔调用 rsync,我可能会选择太大或太小,rsync 因为它不应该检查文件的修改,因为我和模拟工作是唯一访问它们的人。

所以我的想法是使用 inotify(请参阅此问题)来检测循环中模拟目录中的更改,然后将更改的文件分叉到 rsync 中。但是,我不确定这是否会在 fork 完成时意外跳过关闭的文件。(并且可能由于 inotify 调用 rsync 再次同步刚刚同步的文件,我也可能会陷入无限循环......)所以在我尝试太多之前,我重复我的问题:

是否有一种工具可以连接到两个目录并在发生变化时立即同步它们?

(基本上这就像一个离线保管箱,我猜)

directory synchronization

7
推荐指数
1
解决办法
974
查看次数

在计算机上保留 nfs mount 的本地副本

当我的笔记本电脑在我的家庭网络上时,我会在我的笔记本电脑上安装我所有的主目录和其他任何东西。我想知道是否有办法在我的笔记本电脑断开网络时保留 nfs 挂载的本地副本。

一个好处是能够合并更改的文件夹和文件等。

linux filesystems nfs mount synchronization

6
推荐指数
1
解决办法
7287
查看次数

实时本地文件同步

如何为两个本地目录设置即时文件同步?问题是我需要实时(15、10 甚至 5 秒太慢),而且我不希望创建目标根目录。

例如,类似于...

cp -fr sourcea/* /some/destdir
cp -fr sourceb/* /some/destdir
cp -fr sourcec/* /some/destdir
Run Code Online (Sandbox Code Playgroud)

捕获删除也很好,尽管它不是一个交易破坏者。

我不希望在 destdir 中创建“sourcex”。(因此 *)。我试过使用 rsync,它显然不接近甚至接近实时,以及几个通用同步系统。但是,大多数人需要 1 对 1 同步,而不仅仅是内容。

有什么建议?我已经为此奋斗了一段时间,所以任何帮助将不胜感激!

real-time rsync synchronization

6
推荐指数
1
解决办法
1万
查看次数

Rsync --- 逐项更改列表

我了解到通过该-i选项,我可以让 rsync 列出它所做的所有更改。我一直将它与-nor--dry-run选项一起使用,以便我始终可以在实际执行之前了解所有预期的更改。

我一直在使用 rsync 主要是在我的两台计算机上同步我的主目录,这两台计算机都连接到网络。很多时候我只需要移动少量相对较小的文件。如果是这种情况,rsync 会花费更多的时间来检查要从传输中排除的所有文件,而不是实际传输实际更改的文件。

现在,如果我按照此程序进行操作,首先进行试运行并列出所有更改,然后实际进行,则计算要从传输中排除的文件的最长部分将完成两次。

我想把它剪成一个。有没有办法将试运行创建的更改的逐项列表提供回 rsync 以便实时运行更快或执行某些操作?

rsync synchronization

6
推荐指数
1
解决办法
6612
查看次数

如何同步特定设备?

有没有办法访问syncLinux 中的特定设备?

这将用于确保例如对 USB 拇指驱动器的写入已经发生,而无需等待来自视频处理作业的排队写入在不相关的 RAID 阵列上完成。

如果有一个系统调用/参数组合可以实现这一点,我可能会编写一个简单的 C 包装器。如果有人知道可以做到这一点的 Ubuntu 软件包,那就更好了。

hard-disk synchronization disk

6
推荐指数
2
解决办法
4234
查看次数

运行 `unison -repeat watch` 会产生文件系统观察器错误

我正在尝试将主机 OSX 中的文件夹同步到运行 Ubuntu 的 VM。(laravel/宅基地)。这是我在主机上运行的命令:

$ unison ssh://vagrant@192.168.10.10//home/vagrant/www ~/unison/www -repeat watch

产生以下输出

Contacting server...
Connected [...]
Looking for changes
  Waiting for changes from server
Fatal error: Server: Unexpected response 'Usage: unison-fsmonitor [options] root [path] [path]...' from the filesystem watcher (expected VERSION)
Run Code Online (Sandbox Code Playgroud)

在我的本地主机上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
VERSION 1
Run Code Online (Sandbox Code Playgroud)

在我的虚拟机上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
Usage: unison-fsmonitor [options] root [path] [path]...
This program monitors file system changes on all given (relative to root) …
Run Code Online (Sandbox Code Playgroud)

synchronization unison

6
推荐指数
1
解决办法
6922
查看次数

如何手动同步已安装的 webdav 文件夹?

我已经通过以下方式使用davfs2挂载了一个webdav目录:

sudo mount -t davfs -o uid=bruni,gid=users https://server/folder /home/bruni/mountpoint/
Run Code Online (Sandbox Code Playgroud)

如何在不卸载目录的情况下通过命令行强制同步?

客户端运行KUbuntu 19.10,服务器是egroupware服务器,但这很可能无关紧要。

mount.davfs -V                                                                                                                                                                      
davfs2 1.5.5  <http://savannah.nongnu.org/projects/davfs2>
Run Code Online (Sandbox Code Playgroud)

为了澄清我所说的同步是什么意思,我的意思是umount.davfs在卸载之前执行的操作以验证所有更改是否已上传到服务器:

/sbin/umount.davfs: waiting while mount.davfs (pid xxxxx) synchronizes the cache .. OK
Run Code Online (Sandbox Code Playgroud)

synchronization webdav davfs2

6
推荐指数
1
解决办法
2368
查看次数

为什么 rsync 一直跳过我要同步的目录?

我想在我的 Mac High Sierra 机器和 CentOs 7 机器之间同步一个目录,不包括某个文件。我已经尝试过以下

(venv) localhost:dental davea$ rsync -e 'ssh -p 7822' --exclude='dental/wsgi.py' ~/Documents/workspace/dental/ laredotornado@remotedomen.com:/home/laredotornado
skipping directory /Users/davea/Documents/workspace/dental/.
Run Code Online (Sandbox Code Playgroud)

我不太明白为什么它总是跳过我想要同步的文件。我已经验证了本地和远程 driectories 都存在,但不知道还有什么地方可以检查为什么事情会失败。

shell centos rsync synchronization

6
推荐指数
1
解决办法
5145
查看次数

Unison 和版本/编译器冲突

我有两台机器,一台运行 Ubuntu 18.04,另一台运行 Ubuntu 20.04。我想使用 Unison 在它们之间同步文件,但存在一些问题。首先,因为我也与另一台机器同步,所以我从源 Unison 2.48.3 编译。然后在 Ubuntu 18.04 中,我从 Ubuntu 软件 Unison 2.48.4 安装了 Ubuntu 20.04。正确设置它们后,我从 Ubuntu 18.04 的命令行运行 unison-2.48.4-gtk 并尝试同步。尽管一切正常,即它找到了机器和目录,然后我收到消息: Fatal error during unmarshaling (input value:ill-formed message) possibly because client and serer have been compiled with different versions of OCaml compiler。在 20.04 中,我检查了 OCaml 的版本,但显然它没有返回任何内容(即使我已经从应用程序商店安装了 unison)。18.04 的版本是 4.05.0。关于我能做什么有什么想法吗?

ubuntu synchronization unison

6
推荐指数
1
解决办法
4226
查看次数

如何将目录移动到现有目录?

我需要基本上合并两棵树上的更改,将更改从分支 2 应用到分支 1。我有这样的树:

media
??? cd
?   ??? 0
?   ?   ??? file1
?   ?   ??? file2
?   ?   ??? file3
?   ??? 1
?   ?   ??? file1
?   ?   ??? file2
?   ?   ??? file3
?   ??? 2
?       ??? file1
?       ??? file2
?       ??? file3
??? dvd
?   ??? 0
?   ?   ??? file1
?   ?   ??? file2
?   ?   ??? file3
?   ??? 1
?   ?   ??? file1
?   ?   ??? file2
?   ?   ??? …
Run Code Online (Sandbox Code Playgroud)

recursive rename synchronization

5
推荐指数
1
解决办法
2万
查看次数