问题标签 [unison]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Python 跨多台计算机复制文件的最佳实用程序/库/策略是什么?
我将多台计算机的数据存储在文件夹中。许多文件夹包含 40-100 G 大小从 500 K 到 125 MB 的文件。我需要归档大约 4 TB 的文件,并根据存储在每台计算机中的元数据构建一个未归档的元数据系统。
所有系统都运行 Linux,我们想使用 Python。复制文件并将其存档的最佳方法是什么。
我们已经有了分析文件和填充元数据表的程序,它们都在 Python 中运行。我们需要弄清楚的是如何在不丢失数据的情况下成功复制文件,并确保文件已成功复制。
我们考虑过使用 rsync 和 unison 使用 subprocess.POPEn 来运行它们,但它们本质上是同步实用程序。这些本质上是复制一次,但可以正确复制。一旦文件被复制,用户将移动到新的存储系统。
我担心的是 1)当文件被复制时不应该有任何损坏 2)文件复制必须是高效的,尽管没有速度期望。LAN 为 10/100,端口为千兆。
是否有任何可以合并的脚本或任何建议。所有计算机都将启用 ssh-keygen,因此我们可以进行无密码连接。
目录结构将在新服务器上维护,这与旧计算机非常相似。
.net - Windows/Linux 之间的 Unison 同步在传输期间随机挂起
我们定期将交互式信息亭 CPU 部署到远程物理站点,我开发了一个内容更新器应用程序,该应用程序在每个信息亭(Windows 7 Pro)和托管 CMS(在 linode.com 上运行的虚拟化 Ubuntu 服务器)之间执行媒体资产的夜间同步. 内容更新程序是用 C#/.NET 编写的,它使用 Process.Start() 生成一个子 Unison 进程。Unison 配置为使用私钥通过 SSH 连接到远程服务器。
我们遇到的问题是,当作为 ContentUpdater.exe 的子进程生成时,Unison 通常会在传输过程中停止与远程服务器的通信并无限期挂起。没有简单的复制 - 有时它会起作用,但通常它会挂起。在较大的更新(400MB+)上似乎更脆弱,但这比其他任何事情都更具推测性。当它挂起时,客户端(Windows 7)上的 Unison 进程仍显示 25% 的 CPU 利用率,服务器也显示 Unison 进程也在运行——只是没有网络活动。我知道它正在连接,因为它总是启动该过程并在传输过程中进入,但它永远不会在同一个地方挂起两次。我正在运行 Unison-2.40.63.exe 的原生 Windows 二进制版本,
Windows 上的 Unison 命令行如下所示:
作为记录,我最初编写内容更新程序以使用 rsync(通过 Windows 上的 cygwin),但遇到了同样的问题。为了查看 ssh 传输是否是问题的一部分,我尝试在服务器模式 (rsyncd) 下使用 rsync,但挂起继续抬头。
在这一点上,我彻底被难住了。该问题也在其他服务器上重现,所以我认为它在 Windows 方面。我也倾向于相信这个问题只发生在从另一个进程内部的 Process.Start() 调用 Unison/rsync 时(更新:我只是在从命令行运行时让它重现) - 它似乎没有直接从命令行运行时失败。Unison/rsync 也永远不会出错,因此没有要检查的日志文件(除非有人知道我可以检查的远程服务器上的某种服务器端跟踪或日志文件——完全披露:我是 FreeBSD 极客,并且知道关于 Ubuntu 的宝贵信息)。
提前感谢您提供任何和所有见解/想法/解决方案!
最好的
python - ssh 使用没有 RSA 密钥的 python
Stackoverflow 的新手,所以首先,你好。
我正在为我的学校做一个小项目,该项目应该是开源 Unison 程序的自定义 gui(用 python 编写,对我来说是一个教育挑战,因为我从未使用过 python)。我们正在尝试让学生和教职员工在家里和学校同步文件夹,方法是通过尽可能少的输入启动这个程序(如果你愿意的话,请防止白痴)。该界面应该只是他们是学校用户名和密码,而 gui 包装器应该只是将用户名和密码发送到 Unison 并同步它们。
问题是 Unison 依次启动 SSh 并提示输入密码,但 python subprocess.communicate(input) 方法不会让 ssh 获取密码。我意识到 ssh 只会接受来自终端的输入,我不知道如何欺骗它。我读过一些关于使用伪终端的东西,但我仍然很难过。RSA 密钥将是理想的解决方案,但生成它们然后将它们放置在远程服务器上仍然需要我至少使用密码登录一次,这需要解决上述问题,或者终端不是白痴证明。
如果我将其粘贴到终端中,执行字符串可以正常工作。如果您愿意,任何一般的 python 提示也将不胜感激。
谢谢!
Unison 用户手册:http ://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html
编辑:我还应该注意,虽然我目前正在 OSX 和 Linux 下进行开发,但我最终必须使这个 Windows 兼容,因为我学校的大多数学生都将 Windows 作为他们的主要(或唯一)机器运行。
mysql - 一起使用 MySQL 和 Mongodb
我使用 MySQL 的次数超过了 MongoDB,但是从我从 MongoDB 中学到的东西,这正是我所需要的,但它也有 MySQL 可以做的限制(例如自动增量)
将 MongoDB 用于所有事情并仅将 MySQL 用于某些事情是否明智?
例如,使用 MongoDB 来存储用户和其他所有内容,但使用 MySQL 来制作票务系统。
node.js - 与 node.js 同步文件:unision== tcp==node-----[http]-----node==tcp==unison
如果您正在运行节点,而我正在运行节点,有没有人看到一个解决方案,可以让我们保持一组文件同步。
同步很复杂,所以我认为可以将其留给unison(类似于 rsync)之类的工具,然后所有节点所要做的就是在经过身份验证的用户之间连接 TCP 管道。
它大概有 12 行 JavaScript,但目前它超出了我的范围,或者到目前为止我能找到的任何示例。
我查看了一大堆其他文件同步选项(例如 Git、veracity、fossil,包括尝试在 Linux 上安装 Simias iFolder 服务器的一周,失败〜看起来很有希望,因为它为每个主要操作系统都包含一个文件监视客户端)但现在我在想,可能会更简单得多。
如果有人见过这样做的 Node.js 项目,或者处于连接两个 TCP 管道不太难的水平,那么我将不胜感激您的来信
python - 在 Unison Merge 脚本的最后一行代码中获取 SyntaxError
嘿,聪明的头脑,
我正在尝试获取这个我发现工作的 Python 脚本,但不知道是我自己还是原始发帖人没有正确获取代码。该脚本应该通过使用 prefs 文件中的命令来启用 Unison 中的自动冲突解决,方法是merge
获取两个冲突的文件并使用文件名中的日期戳复制其中一个。原来的姿势在这里,但没有任何缩进,所以我不得不通过观察弹出的错误来手动完成。我现在似乎无法解决的错误是
我希望那里的人能够帮助我。
我在下面包含了整个脚本,希望它会有所帮助,并且会注意到任何其他错误:)。
windows - 在 Windows 上跨共享驱动器进行统一
我在 \192.168.1.110 有一个共享驱动器 我的 unison 设置为从
我可以访问 \192.168.1.110\mydata 但是当我尝试从命令提示符统一告诉我“登录失败:未知用户名或密码错误。”时,它没有我在资源管理器窗口中指定的身份验证信息。我该如何指定它?
linux - 同步同步目录中的文件而不是文件夹
在给定同步路径 /home/user/mydata 的情况下,我如何告诉 unison 仅同步
我已经简化了这个例子的问题,但是有没有办法告诉它只同步特定路径的文件?
git - 当我没有对我的存储库做任何事情时,为什么 `.git/index` 会发生变化?
使用最新的 Debian 版本的 git(我使用的是 1.7.2.5),我注意到一个.git/index
文件可能会发生神秘的变化,而我没有执行任何我认为应该更改存储库的操作。(我的 shell 偶尔会运行git branch
,因此它可以显示签出的分支,但这不应该改变任何东西。)更改导致.git/index
文件的长度与原始文件相同,但包含不同的位。 是什么导致了这种变化,我该如何阻止它?
(这个改变很不方便,因为它把Unison文件同步器弄乱了。)
python - Python Watchdog:为什么我的子进程被连续调用?
我是 Python 的新手,我正在尝试与我的家庭服务器同步自动同步。我发现了看门狗,我正在尝试使用它,但是每当我运行“touch test.txt”时,脚本就会不断启动新的统一进程。由于观察者使用的是从队列继承的类,我假设它应该在将第一个事件从队列顶部弹出后才阻塞。我在这里忽略了什么吗?
代码:
输出: