Как бы cron справился с заданием, которое выполняет несколько команд.
В качестве примера у меня есть работа cron, которая выглядит следующим образом. Который становится очень трудно читать.
10 0 * * * firstscript.sh > first.log; secondscript.sh >> second.log; thirdscript.sh >> third.log 2>&1;
Все три сценария выполняются одновременно. В моем окружении у нас есть 6 команд, выполняемых последовательно.
Почему бы не написать ту же работу тремя отдельными работами.
10 0 * * * firstscript.sh > first.log;
10 0 * * * secondscript.sh >> second.log;
10 0 * * * thirdscript.sh >> third.log 2>&1;
Я унаследовал эти задания и пытаюсь лучше понять, почему они выполняются в виде нескольких команд вместо 3 отдельных заданий.
Первая причина, по которой я могу думать, что между сценариями могут быть зависимости. Таким образом, они должны работать в этом конкретном порядке. Так
secondscript.sh
зависит отfirestscript.sh
комплектующие.Вторая причина состоит в том, что эти сценарии / команды являются дорогостоящими для выполнения, и сервер работает лучше, когда они работают последовательно. Потенциальные блокировки файлов и запись нескольких команд в один и тот же файл также могут вызвать проблемы.
Если первый скрипт завершается с ошибкой, выполняются ли команды, следующие за ним?
Если зависимости являются проблемой, есть ли способ разделить работу на несколько работ и при этом удовлетворить зависимости?
Есть ли у cron такая возможность?
источник