Я унаследовал разросшийся crontab, который мне нужно поддерживать и обновлять. У меня нет большого опыта в этом или написании сценариев bash (я думаю, что хорошо разбираюсь в основах), и я хочу делать хорошую работу. Краткий запрос: какие-либо рекомендации по «рефакторингу» запутанного crontab и набора скриптов bash.
Длинный запрос: я столкнулся с рядом проблем, но так много людей используют файлы cron и т. д., что я чувствую, что мне не хватает какого-то большого хранилища информации, лучших практик и инструментов - или это просто стилистическая разница для этого вид программирования? (Мое предубеждение: зачем делать что-то вручную, если я могу использовать инструмент, чтобы сделать это быстрее, последовательно и хорошо?).
Примеры проблем на данный момент:
Из-за внешнего события crontab не запускался пару дней. Вместе с кем-то мы вручную прошлись по списку, пытаясь выяснить, что не запустилось, что нам нужно было перезапустить, какие скрипты нам нужно было отредактировать и запустить с более ранними датами и т. д. Что я не могу найти:
- There are plenty of (slightly pointless) 'cron generators' online. Where are the reverse? Something I can feed in a long crontab, two dates, and have it output which processes should have run when, or just how many times total? This seems within my meager scripting capabilities, so shouldn't it exist already? ;)
- В качестве альтернативы, если мне когда-нибудь придется делать это снова, есть ли способ вызвать bashscript, чтобы любые экземпляры date() были предварительно установлены на более раннее время, а не меняли каждый вызов даты в скрипте? (например, для всех пропущенных отчетов и счетов-фактур)
Оказывается, конкретный отчет не публиковался два года. Его только что снова запросили, и вот оно в crontab! Сценарий bash только что имел неверные ссылки на пути к соответствующим файлам. Чего я не могу найти: какую-то программу проверки пути для файлов bash? Как проверка ссылок на сайт. Да, в конце концов я пройду через все это вручную, но это покажет, по крайней мере, некоторые проблемные области.
Иногда кажется, что между зависимыми процессами был либо слишком длинный, либо короткий промежуток, поэтому обновления происходили после запуска первого или первый не заканчивал работу до того, как был вызван второй. Я видел несколько возможных вариантов для этого (например, anacron запускается в последовательном порядке), но что бы вы порекомендовали?
Существует также большое количество практически бессмысленных электронных писем, сгенерированных из crontab (скрипты, выдающие ошибки, но работающие «правильно», сбои в основном молча или просто печатающие каждый шаг несущественных скриптов). Я буду вручную просматривать сценарии и пытаться заставить их предоставлять больше полезных данных или «тихо добиваться успеха», но, знаете, какие-нибудь рекомендации?
Если мое понимание или схема вопроса спутаны, то прошу прощения, но эй - тогда вы видите мою проблему! Мне нужно перейти от новичка к знанию того, что делать, чтобы сделать это правильно, и не испортить еще больше обидчивую систему. Спасибо!