发布时间:2026/8/17 10:48:27
Windows批处理脚本实现SSH自动化部署与文件传输 1. Windows批处理脚本的自动化潜力在Windows系统管理中.bat批处理脚本一直是最基础却最强大的自动化工具之一。我曾在多个嵌入式开发项目中通过简单的批处理脚本实现了开发板固件部署的自动化流程将原本需要重复操作的工作简化为双击运行。批处理脚本之所以在Windows自动化领域经久不衰主要因为几个核心优势零环境依赖Windows原生支持无需安装额外解释器开发成本低使用简单的命令行语法即可实现复杂逻辑执行效率高直接调用系统命令没有中间层开销组合能力强可以串联多种命令行工具形成工作流2. 远程登录自动化实现方案2.1 SSH协议的选择与配置对于远程登录场景SSH是目前最安全可靠的协议选择。在Windows环境下我们通常有两种SSH客户端方案内置OpenSSH客户端Windows 10 1809:: 检查SSH客户端是否可用 where ssh :: 如果未安装可通过以下命令添加功能 dism /online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0第三方SSH工具如PuTTY:: 使用plinkPuTTY命令行工具示例 plink -ssh user192.168.1.100 -pw password -m commands.txt2.2 免密登录配置实践为提高安全性和自动化程度强烈建议配置SSH密钥认证生成密钥对:: 使用Windows内置ssh-keygen ssh-keygen -t rsa -b 4096 -f %USERPROFILE%\.ssh\embedded_key将公钥部署到目标板:: 使用type命令读取公钥并通过ssh-copy-id传输 type %USERPROFILE%\.ssh\embedded_key.pub | ssh usertarget mkdir -p ~/.ssh cat ~/.ssh/authorized_keys测试免密登录ssh -i %USERPROFILE%\.ssh\embedded_key usertarget提示嵌入式设备可能需要对authorized_keys文件设置600权限可通过以下命令完成ssh usertarget chmod 600 ~/.ssh/authorized_keys3. 文件传输自动化实现3.1 SCP协议基础用法SCP是基于SSH的安全文件传输协议是自动化部署的首选方案:: 上传文件到开发板 scp -i %USERPROFILE%\.ssh\embedded_key local_file usertarget:/path/to/destination :: 从开发板下载文件 scp -i %USERPROFILE%\.ssh\embedded_key usertarget:/path/to/file local_destination3.2 批量传输优化技巧对于需要传输多个文件的情况可以结合for循环实现echo off setlocal enabledelayedexpansion set SRC_DIRC:\build_output set DEST_USERpi set DEST_HOST192.168.1.100 set DEST_DIR/home/pi/firmware set KEY_FILE%USERPROFILE%\.ssh\embedded_key for %%f in (%SRC_DIR%\*.*) do ( echo Transferring %%f... scp -i %KEY_FILE% %%f %DEST_USER%%DEST_HOST%:%DEST_DIR% if errorlevel 1 ( echo Failed to transfer %%f exit /b 1 ) )3.3 断点续传方案对于大文件传输建议使用rsync替代scp实现断点续传:: 需要先安装Windows版rsync如cwRsync rsync -avzP --partial -e ssh -i %USERPROFILE%\.ssh\embedded_key local_file usertarget:/path/4. 完整自动化工作流示例4.1 开发板部署脚本以下是一个完整的固件部署脚本示例包含编译、传输和远程执行echo off setlocal :: 配置参数 set BUILD_DIR%~dp0build set FIRMWARE_NAMEfirmware.bin set TARGET_USERroot set TARGET_IP192.168.1.50 set SSH_KEY%~dp0keys\deploy_key :: 编译步骤 echo Building firmware... cd /d %BUILD_DIR% call build.bat if not exist %FIRMWARE_NAME% ( echo Build failed! exit /b 1 ) :: 传输固件 echo Transferring firmware... scp -i %SSH_KEY% %FIRMWARE_NAME% %TARGET_USER%%TARGET_IP%:/tmp/ if errorlevel 1 ( echo Transfer failed! exit /b 1 ) :: 远程执行更新 echo Executing remote update... ssh -i %SSH_KEY% %TARGET_USER%%TARGET_IP% fw_update /tmp/%FIRMWARE_NAME% reboot echo Deployment completed successfully.4.2 自动化测试脚本结合自动化测试框架的远程执行示例echo off set PYTEST_SCRIPTrun_tests.py set TARGET_DIR/opt/autotest set LOG_DIR%~dp0logs set TIMESTAMP%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2% :: 同步测试代码 rsync -avz --delete -e ssh -i deploy_key %~dp0tests/ testertarget:%TARGET_DIR% :: 远程执行测试 ssh -i deploy_key testertarget cd %TARGET_DIR% python %PYTEST_SCRIPT% test_%TIMESTAMP%.log :: 获取测试结果 scp -i deploy_key testertarget:%TARGET_DIR%/test_%TIMESTAMP%.log %LOG_DIR% :: 解析测试结果 python %~dp0parse_results.py %LOG_DIR%/test_%TIMESTAMP%.log5. 高级技巧与故障排查5.1 超时控制机制网络不稳定的环境下需要添加超时控制:: 设置连接超时通过PuTTY的plink plink -ssh -batch -timeout 30 -i key.ppk usertarget command :: 或者使用Windows内置ssh ssh -o ConnectTimeout30 -i key usertarget command5.2 交互式场景处理对于需要交互的场景可以使用expect脚本或输入重定向:: 通过输入重定向处理简单交互 ( echo password echo y echo reboot ) | plink -ssh usertarget5.3 常见错误排查连接被拒绝检查目标SSH服务是否运行netstat -tuln | grep 22验证防火墙设置netsh advfirewall firewall show rule nameall认证失败检查密钥权限icacls keyfile /reset验证密钥格式ssh-keygen -lf keyfile文件传输中断使用-v参数查看详细日志scp -v -i key file usertarget:/path考虑分卷压缩传输tar czvf - dir/ | split -b 50m - part scp -i key part* usertarget:/path6. 安全增强建议最小权限原则:: 创建专用部署账户 net user deployer Pssw0rd /add net localgroup Remote Deployment Users deployer /add日志审计:: 在脚本开头添加日志记录 echo [%date% %time%] %~nx0 started %~dp0deploy.log :: 重要操作都追加日志 scp -i key file usertarget:/path 21 %~dp0deploy.log敏感信息保护:: 使用环境变量替代明文密码 set /p DEPLOY_PASSEnter password: plink -l user -pw %DEPLOY_PASS% -m command.txt :: 立即清除变量 set DEPLOY_PASS在实际项目中我通常会将这些脚本封装成可配置的模板通过参数化设计提高复用性。比如创建一个config.ini文件存储目标设备信息脚本运行时动态读取:: config.ini示例 [TARGET] ip 192.168.1.100 user pi key_file C:\keys\pi_deploy.key timeout 30 :: 脚本中读取配置 for /f tokens1,2 delims %%a in (findstr /i ip user key_file timeout config.ini) do ( set TARGET_%%a%%b )这种设计使得同一套脚本可以轻松适配不同的开发板环境只需要修改配置文件而无需改动脚本逻辑。

相关新闻

2026/8/17 13:24:31

Shell脚本实现Nginx一键自动化部署与优化

1. Shell脚本与Nginx一键部署概述在Linux系统管理中,Shell脚本和Nginx的组合堪称黄金搭档。Shell脚本作为系统管理员的瑞士军刀,能够将复杂的操作流程自动化;而Nginx作为高性能的Web服务器,在互联网服务中占据着重要地位。将二者结…

2026/8/18 0:26:41

Zemax界面和功能介绍(三)

书接上回,继续介绍学习Zemax操作界面。二、系统选项卡今天学习系统选项卡,这是对一个系统初始条件的设置,这个系统多大的入瞳,多大的视场,在什么样的波长情况下,用什么材料库,这些都是我们在系统…

2026/8/18 6:52:27

reCAPTCHA人机验证实战:从原理到后端集成与风控策略

1. 先搞清楚“我不是机器人”验证到底在防什么“我不是机器人”验证,也就是我们常说的 CAPTCHA 或人机验证,几乎每个上网的人都遇到过。它弹出来让你点一下,或者选几张图,目的很简单:区分坐在电脑前的是真人还是自动化…

2026/8/18 6:52:27

企业级Java应用部署实战:从JDK配置到WebLogic集群搭建

1. 项目概述:从零构建企业级Java应用部署平台如果你正在为一个传统或大型的Java项目寻找一个稳定、功能强大的应用服务器,那么WebLogic大概率会出现在你的备选清单里。作为Oracle旗下的老牌商业级Java EE应用服务器,WebLogic以其卓越的稳定性…

2026/8/18 6:52:27

LLM Wiki编译式RAG:本地化知识库的混合检索与自动更新实战

这次我们来看一个面向个人和企业知识库开发的实战项目:LLM Wiki编译式RAG。如果你正在寻找一个能整合多种RAG策略、支持知识溯源和自动更新的本地化知识库解决方案,这篇文章会直接告诉你它是什么、怎么用、以及如何避开常见的坑。这个项目的核心是提供了…

2026/8/18 6:52:27

Docker离线部署实战:5分钟搞定镜像懒人包制作与批量导入

1. 先搞清楚“Docker懒人包”到底是什么,以及为什么你会需要离线导入如果你正在一个网络受限、无法直接连接Docker Hub或国内镜像源的环境里工作,比如内网开发服务器、生产环境或者网络不稳定的个人电脑,那么“Docker懒人包”和离线导入就是你…

2026/8/17 10:49:52

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 5:02:51

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/18 0:02:05

Qwen3.8-27B本地部署实战:17GB内存运行270亿参数大模型

1. 这篇文章真正要解决的问题 你是否曾对动辄需要上百GB显存才能运行的百亿参数大模型望而却步?是否觉得在个人电脑上部署一个功能强大的语言模型是天方夜谭?最近,通义千问团队发布的 Qwen3.8-27B 模型,宣称仅需 17GB 内存即可在本…

2026/8/18 0:02:05

ME3169 36V,8A,180KHz 恒压Buck DC-DC 转换器

概述ME3169 是一款180KHz,PWM 模式恒压Buck DC-DC 转换器,8V 到36V 宽工作电压范围,低纹波,内置低导通电阻功率MOS。ME3169 内置环路补偿电路,可以减少外围元器件数量。内部设计有恒压环路,可以通过外部电阻…

2026/8/17 15:07:41

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/17 17:27:06

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…