You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已通过ssh2连接服务器,无法找到并执行服务器脚本求解决方案

解决思路

1. 修正路径格式与拼写错误

你的代码存在两处路径相关问题:

  • 定义了repoFile变量但未使用,且执行命令里的路径拼写错误:/repoScript/shutdown.bat少了一个s,正确目录名应为repoScripts。
  • 若服务器是Windows系统,SSH执行命令需使用Windows路径格式(反斜杠),而非Linux的正斜杠。JavaScript字符串中需对反斜杠转义,因此正确路径应写为C:\\repoScripts\\shutdown.bat。

修改后的查看文件命令示例:

conn.exec('type C:\\repoScripts\\shutdown.bat', (err, stream) => {
  // 原有逻辑
});

2. 正确执行脚本而非查看内容

当前用type命令仅能查看脚本内容,若要执行.bat脚本,需直接调用脚本或使用call命令(避免脚本执行后直接终止SSH会话):

// 直接执行脚本
conn.exec('C:\\repoScripts\\shutdown.bat', (err, stream) => {
  // 原有逻辑
});

// 推荐使用call命令,执行更稳定
conn.exec('call C:\\repoScripts\\shutdown.bat', (err, stream) => {
  // 原有逻辑
});

3. 验证服务器上的路径与权限

  • 先执行目录查看命令,确认文件真实存在:
conn.exec('dir C:\\repoScripts', (err, stream) => {
  // 打印输出内容,检查目录下是否有shutdown.bat
});
  • 确认用户ddaud对该文件及所在目录拥有读取、执行权限。

4. 处理环境变量与目录切换问题

如果脚本依赖特定环境变量或相对路径,可先切换到脚本所在目录再执行:

conn.exec('cd C:\\repoScripts && shutdown.bat', (err, stream) => {
  // 原有逻辑
});

内容的提问来源于stack exchange,提问作者ddaudiosolutions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:52:35