跳转到主要内容

文件同步工具

项目描述

Synecure

Synecure提供名为sy的命令行程序,允许在不同机器之间通过SSH轻松同步文件和目录。它主要是围绕bsync进行包装,而bsync本身基于标准的UNIX工具rsync

这是一个测试版软件,并且没有对它将保持您的数据安全提供任何保证。它不应作为备份解决方案使用。

安装

pip install synecure

用法

# Sync local ~/directory with remote $HOME/directory on me@awesome.person
sy ~/directory -r me@awesome.person

# Sync current directory with the same path on me@awesome.person, port 2222
sy -r me@awesome.person -p 2222

# Synchronize to a named remote from your SSH config
sy -r me

# Synchronize the current directory to the last used remote (for that directory)
sy

默认情况下,sy可以接受您的$HOME中的任何路径,并将远程上的相应路径设置为$HOME。您可以使用sy-config add-path命令更改此行为或同步$HOME之外的路径。

没有参数的sy将使用该目录最后使用的远程同步当前目录(您需要第一次使用-r标志,但之后就不需要了)。

如何使用

忽略文件

在根目录中添加一个.bsync-ignore文件,在每一行使用文件名或glob模式进行同步,它们将被忽略。它的工作方式与.gitignore大致相同。

.bsync-ignore文件放在子目录中,以忽略这些子目录中的文件,遗憾的是不会起作用,因此sy ~/xsy ~/x/y可能以不同的方式同步~/x/y的内容,如果两个目录都包含不同的.bsync-ignore文件,或者其中一个有忽略文件而另一个没有。

全局忽略

可以使用sy-config ignore命令来一般地忽略文件或目录

# Edit the ignore file using $EDITOR, if it is set
sy-config ignore

# List all existing ignores
sy-config ignore -l

# Ignore all files that end with ~
# Do not forget the single quotes here, to avoid shell expansion!
sy-config ignore '*~'

# Unignore files that end with ~
sy-config ignore -r '*~'

忽略设置主要类似于上面的 .gitignore.bsync-ignore,但它们是全局应用的。请注意,当同步到远程时,sy 也会读取远程端的全球忽略设置。全局忽略设置位于 $HOME/.config/synecure/ignore,因此即使没有在远程端安装 sy,远程端也可以定义一些全局忽略设置。本地端、远程端的全球忽略设置,以及本地端和远程端的 .bsync-ignore 文件都将合并在一起。

自定义同步路径

要将本地 /etc 同步到远程 /etcetera,对于名为 desktop 的远程

sy-config add-path desktop /etc /etcetera

显然,这仅在远程用户有写入 /etcetera 的权限时才会生效。如果您有帮助,可以为同一主机创建多个具有不同用户的远程。

要将本地 ~/hello 同步到远程 ~/bonjour

sy-config add-path desktop ~/hello bonjour

不要在远程路径中使用 ~,否则会完成错误的内容。

列出可用的远程和路径

sy-config list

同步本地目录

sy-config add dropbox file://~/Dropbox

其他选项

干运行

使用 -n 标志执行“干运行”:sy(好吧,bsync)将报告所有将要发生的传输,但不会执行它们。

使用 --show-plan 获取 sy 将运行的命令序列。

冲突解决

如果自上次同步以来两端都修改了文件,则 sy 将询问您要保留哪个。

使用 sy <options> --resolve local(或 sy <options> -1)始终保留本地文件而不提示,或使用 --resolve remote(或 -2)始终保留远程文件。

列出目录

sy -l 将列出使用该工具以前同步的所有目录,以及它们最后同步到的远程(记住,没有 -r 选项的 sy 将同步到最后一个远程)。

配置文件

  • ~/.config/synecure/remotes.json 定义了命名远程的协议和路径。
    • 您可以使用 sy-config edit 打开该文件的编辑器。
  • ~/.config/synecure/ignore 列出全局忽略设置。
    • 您可以使用 sy-config ignore 打开该文件的编辑器。
  • ~/.config/synecure/directories.json 将目录映射到最后一次使用的远程。
  • ~/.ssh/config 是定义 ssh 主机信息的标准位置。
    • 为了方便,您可以使用 sy-config ssh 打开该文件的编辑器。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

synecure-0.2.1.tar.gz (21.5 kB 查看哈希值)

上传时间

构建分发

synecure-0.2.1-py3-none-any.whl (20.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面