IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 使用WinSCP脚本在win10和linux之间实时同步项目 -> 正文阅读

[系统运维]使用WinSCP脚本在win10和linux之间实时同步项目

使用WinSCP脚本在win10和linux之间实时同步项目


最近在学OpenGL,有时候需要看不同系统渲染结果是否一致。而且我喜欢用vim来敲代码,用原生的总比插件好。

用CMake来构建项目,可以在Visual Studio 和在linux中编辑同一个项目,方便地编译运行查看结果。

但是每次代码更改后都要点一下ftp工具来同步两台电脑,有点麻烦。WinSCP可实现本地实时同步到远程,但是反过来虽然有扩展可以实现,却不能实时,和排除目录。

本文前提条件是能够在win端使用WinSCP连接到linux。只在局域网内测试过。

1 下载安装WinSCP

在win10中安装WinSCP,这是一个免费的ftp、sftp的客户端软件。与某基金会没有关系

官网下载:

https://winscp.net/eng/download.php

安装时可以选择添加到环境变量,方便命令行调用。

2 新建会话,连接到linux

打开WinSCP,在登录窗口中输入你要同步的主机名(或ip)、端口号、用户名。

在这里插入图片描述

3 浏览目录,同步一次

浏览远程项目目录,记下地址

在这里插入图片描述

点击同步,输入本地项目目录

在这里插入图片描述

点传输设置-文件掩码-编辑
在这里插入图片描述
在这里插入图片描述

写要排除的文件或目录,比如.开头的目录、build目录等,记录下掩码。这个就像.gitignore,可以选择不同步编译的目录。以后想排除什么目录,在这个界面配好,让他给你生成就行了。

掩码是类似这样的:

| .*/; build/; vs-build/

4 命令行同步目录

脚本需要在命令行中启动一个会话,也就是登录到远程。不过代码WinSCP已经帮你生成好了。

点击会话-生成会话URL/代码

脚本-格式选择脚本文件,复制所示代码
image-20220330032135476

打开命令行,输入WinSCP安装路径\WinSCP.com,如果设置了环境变量,则可直接输winscp.com

将复制的代码粘贴过来,打开会话,即可进入远程目录

image-20220330032413093

建议先备份项目。

输入同步命令如下,将掩码和目录补上

synchronize both 本地目录 远程目录 -filemask="掩码"

例如

synchronize both J:\code\gl\test1 /home/pde/code/gl/test1 -filemask="| .*/; build/; vs-build/"

看看同步效果合不合预期,如果不合,检查代码,也可看官网文档

https://winscp.net/eng/docs/scriptcommand_synchronize

5 编写脚本,自动同步

WinSCP同样帮你生成了批处理代码,不过需要改一下。

点击会话-生成会话URL/代码
image-20220330025616245

点击脚本-格式为批处理文件,复制所示代码

image-20220330031748134

新建批处理文件,粘贴代码,将“你的命令”替换成刚才那行同步命令,注意要将嵌套引号"写成两个""。写个循环,隔几秒执行一次

我的脚本如下

sync.bat

:s

"J:\WinSCP\WinSCP.com" ^
  /log=".cache/WinSCP.log" /ini=nul ^
  /command ^
    "open sftp://root:password@192.168.1.3/ -hostkey=""ssh-ed25519 255 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=""" ^
    "synchronize both J:\code\gl\test1 /home/pde/code/gl/test1 -filemask=""| .*/; build/; vs-build/"" " ^
    "exit"

timeout 3
goto s

其中timeout 3表示3秒执行一次,命令行中执行脚本就会给你3秒同步一次,要停止就按Ctrl+C。

这个脚本可以方便地修改目录和掩码,同步其他目录。

效果如下
在这里插入图片描述

其他

不足之处

此脚本的缺点:不能删除文件,你删了一边他又给你从另一边同步回来了,得停止脚本,然后两边都删了才行,希望有大佬帮忙解决下。而且每次同步都打开一个会话,可能会造成资源浪费,应该在同一个会话中不断同步,看官网发现应该能用.NET实现,不过我不会。

vim设置自动读取

如果你使用vim的话,得在.vimrc中加上自动保存、自动读取

set autowriteall
set autoread

才能方便地同步,不过是切换编辑时同步

类似软件

  • rsync

  • FreeFileSync

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:32:30  更:2022-04-01 00:33:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:01:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码