文件同步工具
项目描述
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 ~/x
和sy ~/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
打开该文件的编辑器。
- 为了方便,您可以使用
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。