Как охранять сценарий оболочки против того, чтобы выходить из-под контроля?

Не непосредственно, нет (если нет некоторый рычаг в файловой системе, что я незнаком с).

Вы редактируете файл через некоторый стандартный метод? Если так, было бы легче автоматизировать команду от того угла, а не от системного уровня.

Если Вы говорите нам больше о ситуации, мы смогли давать Вам лучшие ответы.

7
задан 23 January 2012 в 08:07
3 ответа

Компьютеры делают именно то, что им говорят. Единственный способ гарантировать, что сценарий «ведет себя должным образом» - это написать его так, чтобы он работал правильно во всех сценариях.

Несколько основных советов:

  1. Внедрите какую-нибудь систему мониторинга.
    Тот факт, что ваша система взорвалась без вашего ведома, говорит мне, что у вас либо нет системы мониторинга, либо ваша текущая система не работает. t достаточно хорошо.
    Потратьте некоторое время на то, чтобы убедиться, что ваши серверы сообщают вам о проблеме до того, как они упадут.
  2. Включите соответствующие меры безопасности в сценарии, запускаемые из cron.
    Ваш сценарий наступил сам на себя. Этого не должно происходить.
    Вы на собственном горьком опыте узнали, что вам нужно защищаться от такого рода вещей (и чтобы система уведомила вас, если это произойдет).
  3. Проектируйте и тестируйте более тщательно.
    Тщательно оценивайте каждый сценарий, который вы собираетесь развернуть чтобы убедиться, что это не вызовет нежелательных побочных эффектов. Если вы можете представить себе сценарий отказа, проверьте его (и обработайте его правильно!).
    Найдите время, чтобы смоделировать сбои (либо жестко закодировав условие как истинное в вашем сценарии, либо создав обстоятельства для проверки вашей логики обнаружения.
4
ответ дан 2 December 2019 в 23:46

Защитные меры, о которых вы говорите, зависят от того, что делает ваш скрипт. Например, лучше сделать резервную копию какого-нибудь важного файла перед его автоматическим изменением. Если сценарий каким-то образом не работает и повреждает этот важный файл, вы в безопасности, потому что у вас есть резервная копия и т. Д.

Одна важная вещь, о которой следует упомянуть, - это ведение журнала, ведение журнала и регистрация . Если ваш скрипт работает в фоновом режиме без файла журнала, показывающего его ход и то, что происходит, вы не будете знать о каких-либо потенциальных проблемах в ближайшем или далеком будущем. Дон'

0
ответ дан 2 December 2019 в 23:46

В конце концов, мы теперь запускаем сценарий внутри виртуальной машины. Это значительно ограничивает масштаб ущерба, который может быть нанесен.

В Linux (по крайней мере, для меня) пугает то, что незначительные опечатки или ошибки могут иметь разрушительные последствия. Даже что-то вроде запуска команды с $ {VARIABLE} может иметь совершенно другое (и деструктивное) значение, если эта переменная пуста или содержит пробел.

0
ответ дан 2 December 2019 в 23:46

Теги

Похожие вопросы