在Unix中计划作业
我对Unix环境相当陌生 我正在尝试在Unix服务器中安排两个任务。第二个任务取决于第一个任务的结果。因此,我想运行第一个任务。如果没有错误,那么我希望第二个任务自动运行。但是如果第一个任务失败,我想在30分钟后重新安排第一个任务在Unix中计划作业,unix,crontab,Unix,Crontab,我对Unix环境相当陌生 我正在尝试在Unix服务器中安排两个任务。第二个任务取决于第一个任务的结果。因此,我想运行第一个任务。如果没有错误,那么我希望第二个任务自动运行。但是如果第一个任务失败,我想在30分钟后重新安排第一个任务 我不知道从哪里开始。这不需要cron。您只需要一个简单的shell脚本: #/垃圾箱/垃圾箱 while:;循环直到达到break语句 如果任务1;然后#如果task1成功 task2#然后运行task2 休息一下,我们就完了。 else#否则任务1失败 睡1800,
我不知道从哪里开始。这不需要cron。您只需要一个简单的shell脚本:
#/垃圾箱/垃圾箱
while:;循环直到达到break语句
如果任务1;然后#如果task1成功
task2#然后运行task2
休息一下,我们就完了。
else#否则任务1失败
睡1800,我们等30分钟
fi#重复
完成
请注意,task1
必须以退出状态0表示成功,以非零表示失败
Wumpus敏锐地观察到,这可以简化为
#/垃圾箱/垃圾箱
直到任务1;做
睡1800
完成
任务2
可以嵌套得更少:直到task1;睡一觉;完成;任务2
@Jens谢谢。对不起,我的问题不清楚。任务2需要安排在特定时间运行,但需要确保任务1在运行任务2之前成功运行。@WumpusQ.Wumbley观察良好!您的版本更简单,应该是首选。@IshworBhatta然后task1需要记录它是否成功运行。这种逻辑是扭曲的。我会考虑是否可以改变这个问题,这样就可以像我们所展示的那样用串行解决方案来解决它。或者task1可以集成到task2中吗?@Jens。谢谢你的帮助。我认为我可以重新调整这个问题,并将这两项任务整合起来,使其工作。