如皋市中国灵车网

VsCode使用SFTP插件同步多个服务器的流程

2026-04-02 13:02:02 浏览次数:2
详细信息

一、环境准备

1. 安装插件

2. 基本配置结构

项目根目录/
├── .vscode/
│   └── sftp.json          # 配置文件
├── 本地文件...
└── 远程同步的文件...

二、配置多服务器同步

单服务器配置示例 (sftp.json):

{
    "name": "服务器名称",
    "host": "服务器IP或域名",
    "protocol": "sftp",
    "port": 22,
    "username": "用户名",
    "password": "密码",
    // 或使用私钥认证
    "privateKeyPath": "~/.ssh/id_rsa",
    "remotePath": "/var/www/html",
    "uploadOnSave": true,
    "ignore": [
        "**/.vscode/**",
        "**/.git/**",
        "**/node_modules/**"
    ]
}

多服务器配置方法:

方法1:多配置文件(推荐)

创建不同的配置文件对应不同服务器:

.vscode/
├── sftp-server1.json
├── sftp-server2.json
├── sftp-server3.json
└── sftp.json  # 主配置文件(使用连接符)

主配置文件 (sftp.json)

{
    "protocol": "sftp",
    "profiles": {
        "server1": "sftp-server1.json",
        "server2": "sftp-server2.json",
        "server3": "sftp-server3.json"
    }
}
方法2:单文件多配置
{
    "contexts": [
        {
            "name": "测试服务器",
            "host": "test.example.com",
            "username": "user1",
            "remotePath": "/var/www/test",
            "uploadOnSave": false
        },
        {
            "name": "生产服务器",
            "host": "prod.example.com",
            "username": "user2",
            "remotePath": "/var/www/prod",
            "uploadOnSave": false
        }
    ]
}

三、基本操作流程

1. 连接服务器

2. 同步操作

常用命令:
- SFTP: Upload               # 上传当前文件
- SFTP: Download             # 下载当前文件
- SFTP: Upload Project       # 上传整个项目
- SFTP: Download Project     # 下载整个项目
- SFTP: Sync to Remote       # 同步到远程
- SFTP: Sync to Local        # 同步到本地
- SFTP: Diff                 # 对比差异

3. 快捷键配置(settings.json)

{
    "sftp.autoUploadDelay": 1000,
    "sftp.autoDownload": false,
    "sftp.autoUpload": false
}

四、高级功能

1. 自动同步配置

{
    "name": "自动同步服务器",
    "host": "192.168.1.100",
    "remotePath": "/home/project",
    "uploadOnSave": true,
    "syncMode": "update",
    "watcher": {
        "files": "**/*",
        "autoUpload": true,
        "autoDelete": true
    }
}

2. 忽略规则

"ignore": [
    "**/.vscode/**",
    "**/.git/**",
    "**/node_modules/**",
    "**/tmp/**",
    "**/*.log",
    "*.{jpg,png,gif}"
]

3. 多环境同步脚本

创建 .vscode/sftp-tasks.json

{
    "tasks": [
        {
            "name": "同步到测试环境",
            "command": "sftp upload",
            "args": ["test"]
        },
        {
            "name": "同步到生产环境",
            "command": "sftp upload",
            "args": ["prod"]
        }
    ]
}

五、实际工作流程示例

场景:开发→测试→生产

1. 开发环境(本地)
   - 创建配置文件:.vscode/sftp-test.json
   - 创建配置文件:.vscode/sftp-prod.json

2. 测试阶段
   - 选择测试服务器配置
   - 按 Ctrl+Shift+P → SFTP: Upload Project
   - 或设置 uploadOnSave: true 自动同步

3. 生产发布
   - 切换到生产服务器配置
   - 执行 SFTP: Diff 检查差异
   - 执行 SFTP: Sync to Remote

最佳实践:

不要在生产环境设置 uploadOnSave: true 使用 SSH 密钥认证替代密码 配置完善的 ignore 规则 同步前先进行差异对比 重要的生产同步先备份

六、常见问题解决

权限问题

"permissions": {
    "owner": "www-data",
    "group": "www-data",
    "mode": "0755"
}

连接超时

"connectTimeout": 10000,
"keepaliveInterval": 10000

大文件传输

"concurrency": 1,
"limitOpenFilesOnRemote": 10

七、替代方案

如果 SFTP 插件不能满足需求,可以考虑:

这样配置后,你就可以轻松管理多个服务器的文件同步工作了。

相关推荐