在Unix中安排工作

时间:2017-03-29 14:04:49

标签: unix crontab

我对Unix环境很陌生。

我正在尝试在Unix服务器中安排两个任务。第二项任务取决于第一项任务的结果。所以,我想运行第一个任务。如果没有错误,那么我希望第二个任务自动运行。但如果第一项任务失败,我想在30分钟后重新安排第一项任务。

我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

你不需要cron。您只需要一个简单的shell脚本:

#!/bin/sh

while :; do             # Loop until the break statement is hit
   if task1; then       # If task1 is successful
      task2             # then run task2
      break             # and we're done.
   else                 # otherwise task1 failed
      sleep 1800        # and we wait 30min
   fi                   # repeat
done

请注意task1必须指明成功,退出状态为0,失败则为非零。

正如Wumpus所说,这可以简化为

#!/bin/sh
until task1; do
   sleep 1800
done
task2