如何确保脚本仅在另一个脚本之后运行

sat*_*oru 3 python bash cron crontab

我有两个运行的python脚本cronjobs.

ScriptA处理日志文件并将记录插入到table,ScriptB使用记录生成报告.

我安排ScriptA在ScriptB之前运行一小时,但有时ScriptB在ScriptA完成插入之前运行,因此生成了错误的报告.

如何在ScriptA完成后确保ScriptB正确运行?

EDIT ScriptA和ScriptB做了很多不同的事情,比如说,一个用于保存用户数据,另一个用于内部使用.在其他地方可能有一些ScriptC取决于ScriptA.

所以我不能只合并这两个工作.

srg*_*erg 7

制作运行ScriptA然后运行ScriptB的单个cron作业不是更好吗?这样,您可以确保ScriptB在ScriptA完成之前不会运行,并且您不需要修改任何一个脚本.

cronjob可以运行一个简单的shell脚本,如:

#!/bin/sh

python ScriptA.py
python ScriptB.py
Run Code Online (Sandbox Code Playgroud)

编辑:如果您确实无法合并两个cron作业,则可以使用此问题中描述的技术等待第一个过程完成.

  • 几秒钟打败我.为了避免创建包装脚本,cron可以是:****/usr/bin/python ScriptA.py &&/usr/bin/python ScriptB.py,其中&&将确保ScriptA完成除RC0以外的任何操作,ScriptB将根本不运行. (2认同)