同步两台服务器之间的进程

我有不同的进程必须按顺序运行,但它们位于两台不同的服务器上。 简而言之,我想要做什么:1.在服务器A上运行进程1 2.在服务器B上运行进程2 3.在服务器A上运行进程3

但第二个过程在第一个过程完成之前不能启动。

这两台服务器具有SSH连接。 我想用cron启动全局进程。 但是我不想用crontab启动它们,并且在它们之间有很长的等待时间,只是为了确保第一个在启动第二个之前完成。 换一种说法,我怎样才能在远程服务器上从本地脚本启动一个进程,等待远程脚本完成后再继续下一行?

这是工作stream程软件的一个共同特点。

我想,你可以推出自己的产品,但是如果第二台主机不可用,你必须考虑做什么,如果在下一个时间间隔出现时初始的cronjob仍在运行,该怎么办等等。当多部分/多主机进程的一部分失败时,在需要stream量控制,分支和其他逻辑之前,需要花费太长的时间。

关于袖口的最明显的答案(可能充满了它自己的错误)将通过附加到原始cronjob的ssh命令追加第二阶段的启动。

您可能必须在主机之间设置ssh密钥以允许从初始主机进行自动login。

第二个select是以某种方式在主机之间传递状态信息,比如周期性地由第二个主机接收到的原始主机上的标志文件等。我通常觉得这不太理想,因为它涉及到轮询,但似乎并不是你这里需要一个企业级的解决scheme,否则这个会在serverfault上发布。

你可能想要像RPC那样的东西,每台机器都只是告诉对方它是用一个任务完成的,下一个应该运行。 您还可以将主脚本放在一台机器上,其中包含在另一台机器上运行命令的部件,类似“内联”。 ssh将在远程机器上运行命令; 最简单的forms:

 ssh <host> <command>