我有一个在 Windows 和 Unix 上有组件的应用程序。我需要运行夜间作业,在两个环境中启动任务/作业。
这些需要按顺序排列,所以我不能简单地使用 Cron/任务计划程序。
对于每项作业,在 Windows 或 Unix 上都会有一个控制脚本,但该脚本需要在其他环境上启动作业并检测它们何时完成以及成功/失败代码。
过去,我曾使用 samba 共享上的“标志文件”来实现这一点。这种方法可行,但需要接收端的“轮询”行为,我认为这不是最佳选择。
如果可能的话,我宁愿不要在脚本中嵌入用户凭据。
答案1
如果您可以使用 SSH,我建议您在 Windows 机器上安装 FreeSSHD 并以此方式执行进程。FreeSSHD 不会复制 BASH shell,但它会为您提供 Windows shell。
答案2
最后,我在 Windows 中运行控制进程,并使用 PLINK 在 Unix 中执行命令。使用 PLINK,我能够捕获 Unix 进程生成的控制台输出和退出代码,并在 Windows 中处理它们。
我设置了基于公钥的“无密码”身份验证。有关设置的指南请参阅 PLINK 文档。