局域网内基于SSH批量执行下发文件

本文描述了一个在无网络管理软件的局域网环境中,利用SSH免密通信进行文件批量更新的方法。通过在服务器上部署Tomcat或类似服务,配置作业脚本,利用Windows的Schtasks实现定时任务,可以在多台主机间高效地进行文件分发。此方案适用于带宽充足且主机资源路径一致的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目应用场景

局域网环境下且在无电子教室等网络管理软件下如何批量下发(更新)文件至多台主机

前提:1.多台主机在同一局域网且已经开放ssh端口配置了免密通信

           2.主机所更新文件以及文件路径一致

           3.网络带宽足够,千兆带宽

思路:可基于SSH免密通信做二次开发

测试用例:

服务器S(文件更新下发机)192.168.0.1,

已部署tomcat(也可用nginx jetty等服务器代替)做下发服务器

并在服务器内准备更新文件以及作业脚本保存在txt文件内

且资源存放路径在/TomcatPath/webapps下

以下发app1.zip为例

作业脚本参考:

#创建临时目录存放下发文件
if (!(Test-Path "D:\TempFolder")){ mkdir "D:\TempFolder"}
#申明解压文件(以7z为例)环境变量
$env:PATH += ";D:\Program Files\7-zip"
pushd d:\TempFolder
#curl拉取tomcat上更新资源
curl "http://192.168.0.1:8080/FileUpdate/app1.zip" -OutFile d:\TempFolder\app1.zip
Write-Host "'n'n"
if(Test-Path "D:\APP\app1"){
           rm -r -force D:\APP\app1
}
#解压文件到固定路径
7z x app1.zip -oD:\APP\app1 -y
#完成作业后可删除文件
rm d:\Autoplan.ps1

用户机A 192.168.0.2

用户机B 192.168.0.3

总控机C 192.168.0.4

A B对下发机S配置SSH免密通信,并做taskschd.msc定时任务可参考前段文章

Windows下配置多台主机之间ssh免密登录-优快云博客

基于SSH免密通信+Schtasks实现远程控制应用-优快云博客

用户机A、B与服务器S做完免密通信

并在A、B创建分发脚本,保存为powshell脚本格式

curl -o D:\AutoPlan\Autoplan.ps1 'http://192.168.0.1:8080/FileUpdate/Autoplan.txt'

 且在A、B上创建基础定时任务T1绑定该脚本

可再创建一个计划任务程序 关联空脚本 Autoplan.ps1 占位,等T1执行会覆盖当前脚本

在总控机C上创建脚本

两个脚本之间睡眠了五秒 以防执行过快出现异常

 

:如果主机数量过多 可以将ip提取出来,然后优化一下distribution_Control脚本

for /f "delims=" %%i in ('type ip.ini') do (
    echo,开启主机 %%i 上文件分发计划任务
    >nul ssh Administrator@%%i 'schtasks /run /tn distributionFile'
)

Tips:此方案适用于特定环境下局域网文件批量自动下发,但需要带宽要求且主机资源路径高度一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值