我要处理当前的情况:我必须使用 ARCServe R15(安装在 Windows 2003R2SP2 上)安排我公司基于 Linux 的服务器(在 Suse Linux 下)的备份。我知道我的备份软件 (ARCServe) 能够将执行前/后执行脚本添加到我的备份作业中。如果脚本失败,将指定 ARCServe 不运行备份作业,如果成功,则指定运行。我对此没有任何问题。
问题是,我想制作一个 Windows 脚本(由 ARCServe 启动)以在集群上执行 Linux 脚本: - 如果这个 Linux 脚本失败,我希望我的 windows 脚本失败,所以我在 ARCServe 中的备份作业不会运行 - 如果 Linux 脚本成功,我希望我的 windows 脚本以错误代码 0 正常结束,因此我的 ARCServe 作业将正常运行。我试过创建这个批处理文件(我们称之为 HPC.bat):
回声开启
开始 /wait "C:\Program Files\PUTTY\plink.exe" -v -l root -i "C:\IST\admin\scripts\HPC\pri.ppk" [cluster_name] /appli/admin/backup_admin
退出%errorlevel%
如果我通过双击这个 .bat 手动启动它,或者在 Windows 下的命令提示符下启动它,它会正常执行然后结束。如果我让它由 ARCServe 启动,脚本似乎永远不会结束。我的工作处于“等待”状态,似乎linux脚本的执行代码没有返回到我的批处理文件中,并且这个没有关闭。在我看来,发生的事情是 plink 只是打开与 Linux 的连接,发送 sript 执行信号,然后关闭连接,因此无法将执行代码返回给批处理。我对吗 ?
我想做的事情是可能的,还是我在尝试不可能做的事情?那么,我必须以不同的方式进行吗?我必须使用 PUTTY 或 CygWin 而不是 plink 吗?拜托,这让我头疼...