gpt4 book ai didi

windows - 从 Windows 远程运行 Linux 脚本并获取执行结果代码

转载 作者:可可西里 更新时间:2023-11-01 10:38:51 24 4
gpt4 key购买 nike

我有当前的情况要处理:我必须使用 ARCServe R15(安装在 Windows 2003R2SP2 上)安排我公司基于 Linux 的服务器(在 Suse Linux 下)的备份。我知道我的备份软件 (ARCServe) 可以将执行前/后脚本添加到我的备份作业中。如果脚本失败,将指定 ARCServe 不运行备份作业,如果成功,则指定运行。我对此没有问题。

问题是,我想制作一个 Windows 脚本(由 ARCServe 启动)以在集群上执行 Linux 脚本:- 如果这个 Linux 脚本失败,我希望我的 windows 脚本失败,这样我在 ARCServe 中的备份作业就不会运行- 如果 Linux 脚本成功,我希望我的 Windows 脚本以错误代码 0 正常结束,这样我的 ARCServe 作业就会正常运行。我试过创建这个批处理文件(我们称之为 HPC.bat):

开启回声

start/wait "C:\Program Files\PUTTY\plink.exe"-v -l root -i "C:\IST\admin\scripts\HPC\pri.ppk"[集群名称]/appli/admin/备份管理员

退出 %errorlevel%

如果我通过双击手动启动这个 .bat,或者在 Windows 下的命令提示符下启动它,它会正常执行然后结束。如果我让它由 ARCServe 启动,脚本似乎永远不会结束。我的工作一直处于“等待”状态,似乎 linux 脚本的执行代码没有返回到我的批处理文件中,而且这个也没有关闭。在我看来,发生的事情是 plink 只是打开与 Linux 的连接,发送 sript 执行信号,然后关闭连接,因此执行代码无法返回批处理。我说得对吗?

我想做的事情是可能的还是我正在尝试做一些不可能的事情?那么,我必须采取不同的方式吗?我必须使用 PUTTY 或 CygWin 而不是 plink 吗?拜托,这让我很头疼......

最佳答案

如果你安装了 Cygwin,你可以像在 Linux 到 Linux 上那样做,即使用 ssh someuser@remoteserver.com somecommand 远程运行命令

此命令将在调用客户端上返回相同的返回码,就像命令在远程端退出时一样。如果您使用 SSH 共享 key 而不是密码进行身份验证,也可以在没有用户交互的情况下编写脚本。

关于windows - 从 Windows 远程运行 Linux 脚本并获取执行结果代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com