Rsync SSH
保持远程目录与本地项目同步。
详细信息
安装量
- 总数 8K
- Win 3K
- Mac 3K
- Linux 2K
Aug 6 | Aug 5 | Aug 4 | Aug 3 | Aug 2 | Aug 1 | Jul 31 | Jul 30 | Jul 29 | Jul 28 | Jul 27 | Jul 26 | Jul 25 | Jul 24 | Jul 23 | Jul 22 | Jul 21 | Jul 20 | Jul 19 | Jul 18 | Jul 17 | Jul 16 | Jul 15 | Jul 14 | Jul 13 | Jul 12 | Jul 11 | Jul 10 | Jul 9 | Jul 8 | Jul 7 | Jul 6 | Jul 5 | Jul 4 | Jul 3 | Jul 2 | Jul 1 | Jun 30 | Jun 29 | Jun 28 | Jun 27 | Jun 26 | Jun 25 | Jun 24 | Jun 23 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 1 | 0 | 0 | 2 | 1 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 3 | 0 | 2 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 6 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
Readme
Sublime Rsync SSH
保持远程目录与本地项目文件夹同步。
描述
此插件允许您使用rsync和ssh将项目文件夹同步到一个或多个远程服务器。
术语
远程
是指定为同步的本地图标文件夹。目的地
是在特定服务器上的特定用户路径。远程
可以有一个或多个目的地
特点
- 本地编辑,远程工作
- 将一个或多个项目文件夹上传到一个或多个远程服务器。
- 每个项目文件夹可以多个远程,每个远程可以有多个目的地
- 同步整个项目或仅同步单个远程或目的
- 仅保存单个文件时仅同步正在保存的文件。
- 自动为项目中的所有文件夹生成初始rsync-ssh配置。
- 排除文件,可以是整个项目,单个文件夹或单个远程。
- 选择性同步:仅同步项目文件夹的远程服务器部分。
- 在同步前后在远程主机上运行命令的钩子。
- 启用/禁用远程。
- 解析rsync参数以进行高级使用(或尚未包含的功能)
- 详细的控制台输出,以便您知道哪些东西被同步到哪里。
要求
- 您必须在本地和远程服务器上同时安装
ssh
和rsync
。 - 您必须有一个允许您无密码登录的ssh密钥。如果您在密钥上设置有密码,则必须使用
ssh-agent
。在OS X上,您需要使用ssh-add -K
将您的密钥添加到Keychain,一旦完成,OS X将使用ssh-agent
查询Keychain以获取您的密码。 - 在远程服务器上,您必须将您的SSH公钥添加到
~/.ssh/authorized_keys
。
有关创建和使用SSH密钥的更多信息,请参阅这篇指南。
用法
注意您可以通过查看控制台上的输出来查看插件所做的一切。
初始化配置
首先创建一个Sublime项目,您可以通过添加一个或多个文件夹并保存您的项目来完成此操作。
然后转到项目
菜单,选择Rsync SSH
,然后选择初始化设置
,这将为settings
添加rsync_ssh
块并使用一些合理的默认值,然后为您打开首选项进行编辑。
请注意,--delete
选项将破坏您在remote_path
中指定的目录 - 为了方便起见,我已添加--dry-run
,以便您在运行实时的rsync
之前测试您的配置。
示例.sublime-project
文件
请注意,.sublime-project
是一个JSON文件,因此不支持注释,幸运的是,Sublime Text使用了相当宽松的解析器,支持//
注释。下面的注释只是为了记录各个部分。
当您通过初始化设置
初始化项目时,插件将添加rsync_ssh
配置到您的项目文件中。
{
"folders":
[
{
"follow_symlinks": true,
"path": "my-project-folder"
}
],
"settings":
{
// This is the block the plugin adds to your project file
"rsync_ssh":
{
// To use non-standard ssh specify the path here ...
"ssh_binary": "/usr/local/bin/ssh",
// ... and additional arguments here
"ssh_args": ["-F", "~/another/config/file"],
// To disable sync on save set 'sync_on_save' to false
"sync_on_save": true,
// To always sync all files when saving (not just the saved file)
// set `sync_all_on_save` to true
"sync_all_on_save": true,
// Rsync options
"options":
[
"--dry-run",
"--delete",
// Override how we handle permissions, useful for platforms that does not support Unix permissions.
// Here we tell rsync to use the umask on the destination to set the permissions
"--no-perms", "--chmod=ugo=rwX"
],
// Stuff we do not want rsync to copy
"excludes":
[
".git*",
"_build",
"blib",
"Build"
],
// Servers we want to sync to
"remotes":
{
// Each folder from the project will be added here
"my-project-folder":
[
{
// You can disable any destination by setting this value to 0
"enabled": 1,
// Stuff we do not want rsync to copy, but just for this destination
"excludes":
[
],
// ssh options
"remote_host": "my-server.my-domain.tld",
"remote_path": "/home/you/Projects/my-project",
"remote_port": 22,
"remote_user": "you",
// Run commands before and after rsync
"remote_pre_command": "",
"remote_post_command": ""
}
],
// Syncing a single subfolder is also supported
"my-project-folder/subfolder":
[
{
// You can disable any destination by setting this value to 0
"enabled": 0,
// Stuff we do not want rsync to copy, but just for this destination
"excludes":
[
],
// ssh options
"remote_host": "my-server.my-domain.tld",
"remote_path": "/home/you/Projects/my-subfolder-target",
"remote_port": 22,
"remote_user": "you",
// Run commands before and after rsync
"remote_pre_command": "",
"remote_post_command": ""
}
]
}
}
}
}
同步单个文件
正常保存文件即可,因为这会触发保存事件,使此插件将文件同步到所有启用的远程服务器。
同步特定的远程或目标
按⌘⇧F11选择特定的远程或目标进行同步。当选择特定的目标时,将覆盖enabled
标志,并始终同步文件夹。如果您选择远程服务器,然后选择所有
目标,则会尊重enabled
标志。如果您选择只有一个目标的远程服务器,则会立即开始同步,并将覆盖enabled
标志。
同步完整项目
按⌘⇧F12将所有文件夹同步到所有启用的远程服务器。 - 注意您至少必须这样做一次,以便在远程服务器上创建项目文件夹。
安装
您可以通过直接克隆此项目或通过出色的Package Control插件安装此插件。按⌘⇧P并输入Package Control: Install Package
,然后选择它,然后输入包名rsync-ssh并选择它。
要在Windows上使用此插件,您必须首先安装Cygwin。
常见问题解答
当我尝试同步时,没有任何反应
您可能忘记从项目配置文件中的rsync选项中删除--dry-run
。
我在Windows上,我该如何在目标上获得合理的权限?
由于Windows没有对Unix权限的本机支持,您不能依赖“保留权限”的默认同步模式。相反,您可以禁用权限同步使用--no-perms
,然后使用--chmod=ugo=rwX
使rsync使用目标上的umask来确定文件应该具有哪些权限。当您初始化rsync-ssh
配置时,这将被自动添加到配置中,如上面示例所示。
待办事项
- 将
remotes
重命名为folders
(称它们为远程服务器有点愚蠢)。
许可权
© 2013-2015 David Olrik <[email protected]>.
这是免费软件。它许可在Creative Commons Attribution-ShareAlike 3.0 Unported License下。您可以在自己的工作中自由使用此软件包。但是,如果您更改和/或重新分配它,请以某种方式向我归属,并以此类许可证或类似许可证分配您的作品。