Unix:在特定时间在不同的机器上运行脚本

时间:2012-01-02 13:17:58

标签: linux bash shell unix solaris

我正在编写一个脚本,该脚本获取脚本名称和时间,以便从配置文件中运行该脚本和登录/主机名。

拥有cron,at和crontab权限。

现在还有其他任何方法可以实现逻辑,以便在输入时间(在可配置文件中设置)从运行在不同主机上的另一个脚本运行脚本。

详细信息: 就像script_A读取一个配置文件,从中获取三个输入script_B,运行时间(ddmmyyyy h24:mm:ss),login1 @ machine1。此script_B必须在给定主机上提供的时间运行。

所有连接的计算机都没有cron,crontab,权限

我正在使用solaris

我们可以在unix中使用这样的东西,使得script_A创建一个script_c,其中script_B具有check on time参数。现在这个script_c被复制到远程机器上,它一直在后台运行,直到达到提供的时间。一旦到了,它就会执行script_b(位于配置文件中的远程主机上)并退出。

感谢。

2 个答案:

答案 0 :(得分:1)

如果你想在主机上的纪元时间xxxxxxxxxx执行命令foo,你可以这样做:

$ delay=$((xxxxxxxxxx - $( date +%s ))); test $delay -gt 0 &&
        sleep $delay && ssh host foo

答案 1 :(得分:0)

最简单的方法是从源代码编译cron并将其部署在目标机器上。每当您的代码对机器进行任何控制时,请检查您的cron守护程序是否正在运行(经典PID文件)并在必要时启动它。

但警告:

这是社交问题和技术解决方案。你的里程很低。