Windows→Linux,本地同步到服务器
创始人
2025-01-19 13:32:47
0次

适用背景:

用自己电脑修改代码,使用实验室/公司的服务器炼丹的朋友

优势:

本地 <--> 服务器,实时同步,省去文件传输的步骤

本地改 -> 自动同步到服务器 -> 服务器跑代码 -> 一键同步回本地(真一键,就右击按一下同步)

具体实现方式:

1. 安装SFTP插件

2. 打开本地的项目文件夹

3. ctrl + shift + p 打开搜索栏,输入sftp,打开SFTP: Config

4. 配置文件修改,实现自动同步

本地->远程,增删改移全自动,不限文件/夹文件。注意是 本地到远程 单向,反之 远程->本地 无法自动同步,需要手动download到本地。

当然远程文件都是只读的,你肯定是操作本地文件的,除了远程代码生成的新文件,这里是唯一需要手动download到本地的。

配置文件会生成在项目根目录/.vscode/sftp.json

完整的配置参数信息:Configuration · Natizyskunk/vscode-sftp Wiki (github.com)

注意:sftp.json文件会自动创建在项目的.vscode文件夹中,.vscode文件夹在哪个项目里面,该同步效果就对哪个项目生效,并不是全局的

以下配置参数为重中之重,实现全自动同步请照抄:

最重要的5项请一模一样:

{     "...",     "watcher": {         "files": "**/*",         "autoUpload": true,         "autoDelete": true     },     "...",     "syncOption":{         "delete": true     },     "...", }     "uploadOnSave": false, // set to false if watcher `autoUpload` is set to true & `files` is set to "**/*".

password:服务器密码,不写这个参数则每次都需要输入密码
privateKeyPath:本地端私钥绝对路径,用这个就可以不用password免密了,配置方法见VS code配置免密连接Linux服务器-CSDN博客

{     "name": "My Server",     "host": "xxx.xxx.xx.xxx",        #你要连接的服务器的IP地址     "protocol": "sftp",                 #也可以用ftp方式,sftp更安全     "port": 22,                     #sftp,默认端口是22;ftp,默认端口是21     "username": "xxx",                #远程服务器的名称     "password": "xxx",                #远程服务器的用户登录密码     "privateKeyPath": "c:/Users/xxx/.ssh/id_rsa"      "remotePath": "/home/xxx/project",   #本地项目要同步到远程电脑上的路径,必须是绝对路径     "uploadOnSave": true,          #本地更新文件内容会自动同步到远程文件     "downloadOnOpen":true,         #填true就行,打开远程文件时自动将其下载到本地      "ignore": [".vscode"],                #忽略的文件/文件夹,不会被同步     "watcher": {               #监视器(可以重命名文件和删除文件)         "files": "**/*",          #监视项目根目录下所有文件是否更改。         "autoUpload": true,         #本地有更新操作时,远程自动更新(增删改移)         "autoDelete": true          #本地有删除操作时远程自动删除     } }

按照如上配置后,本地->远程 所有操作都是全自动同步。
    "downloadOnOpen": true 会自动同步(下载)打开的文件(本地端本身就有,但是远程端改写了内容的文件,即 远程->本地 的 “改” 通过该参数可以实现自动同步(需要打开该文件))
然后 远程->本地 的同步,比如远程跑代码生成的文件或者改动的文件(删除和移动操作不会同步),通过在本地目录空白处鼠标右键(或者在扩展设置键盘快捷键)——  Remote -> Local 或者 Download Folder


所以 远程端尽量不要做删除和移动文件的操作,如果在远程端移动或删除了文件,然后点同步了。如果是移动操作,那本地端原位置和新位置都会有这个文件(删除操作的话就是没变化,本地端原文件还在那里)

简单来说就是远程同步到本地只增不减,灰色为最终结果:
远程端
/home/xxx/a --移动--> /home/yyy/a,本地端 /home/xxx/a + /home/yyy/a
远程端 /home/xxx/a --删除--> 无,本地端 /home/xxx/a


其实也不麻烦,只需要在本地端手动删除原位置的/home/xxx/a即可

下面其他配置参数,仅供参考:

{     "name": "My Server",     "host": "xxx.xxx.xx.xxx",        #你要连接的服务器的IP地址     "protocol": "sftp",                 #也可以用ftp方式,sftp更安全     "port": 22,                     #sftp,默认端口是22;ftp,默认端口是21     "username": "xxx",                #远程服务器的名称     "password": "xxx",                #远程服务器的用户登录密码     "remotePath": "/home/xxx/project",   #本地项目要同步到远程电脑上的路径,必须是绝对路径     "uploadOnSave": true,          #本地更新文件保存会自动同步到远程文件(不会同步重命名文件和删除文件)     "downloadOnOpen":false,         #填false就行,打开远程文件时自动将其下载到本地     "watcher": {               #监视器(可以重命名文件和删除文件)         "files": "**/*",            #监视项目根目录下所有文件是否更改。当然如果有需要你也可以把这里的值改成项目中某个文件或文件夹的相对路径,这样你的项目代码中只有你指定的文件或文件夹会被同步到远程         "autoUpload": true,         #本地有更新操作时,远程自动更新(修改和重命名)         "autoDelete": true,         #本地有删除操作时远程自动删除     } }
{     "host": "远程服务器IP地址",     "port": 22,     "username": "远程服务器登录名",     "password": "远程服务器密码",     "protocol": "sftp",     "agent": null,     "privateKeyPath": null,     "passphrase": null,     "passive": false,     "interactiveAuth": true,     "remotePath": "远程服务器路径,如(/usr/local/...)",     "uploadOnSave": true,     "syncMode": "update",     "ignore": [         "**/.vscode/**",         "**/.git/**",         "**/.DS_Store"     ],     "watcher": {         "files": "**/*",         "autoUpload": true,         "autoDelete": true     }  }

5. 手动同步(可跳过不看)

这里与Remote-SSH相反,SFTP不能直接修改远程文件,它的运作方式是本地修改自动同步到远程,远程修改手动下载到本地,可以单文件同步,也可以整个文件夹同步,非常灵活,免去文件传输。

远程目录和文件只用以下选项:

本地目录和文件只用以下选项:

tip1:本地同步文件夹到远程也是在远程目录右击,而不是本地文件夹右击

tip2:配置文件里面参数"uploadOnSave": true就不需要手动上传到远程了,只有第一次需要“Upload Folder”把整个文件夹上传过去

补充1:你在本地文件目录右键时或许会看到如下选项,你可以按需使用:

    sync both directions:将远程和本地的代码同步至二者一致(会提示哪边缺少文件)

    sync local -> remote : 远程同步到本地(只同步变化的地方,速度快)    

              sync remote -> local: 远程同步到本地(只同步变化的地方,速度快)

    upload folder:远程文件夹同步到本地(不管有没有变化都会扫描整个文件夹,慢)

    download folder:远程文件夹同步到本地(不管有没有变化都会扫描整个文件夹,慢)

    这些选项,可以让你在比如本地代码误删、远程端添加了项目文件等情况下,从远程拷贝项目到本地

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...