Автоматизация наших задач — отдельное удовольствие. В какой еще профессии можно запрограммировать машины, чтобы они делали за нас нашу работу? Ах, если бы это было так просто! Автоматизация задачи требует времени, но выигрыш может быть огромным.
Я не собираюсь здесь давать уроки Perl, Python, Ruby, UNIX shell, VBasic или Kix32. В этой главе я расскажу зачем, что и как следует автоматизировать. Кроме того, я приведу фрагменты кода, которые помогают мне в работе уже много лет.
Достоинство автоматизации очевидно. Она сокращает нам объем работы, потому что автоматизированная задача требует от нас меньше внимания и времени или, благодаря «хрону» (cron) UNIX или планировщику Windows, выполняется автоматически, без нашего участия. Неожиданным положительным эффектом автоматизации является простота делегирования автоматизированной задачи. Любая задача, которую вы переложили на кого-то другого, уже является маленькой победой.
Достаточно ли автоматизирована ваша работа?
Адам Московиц (Adam Moskowitz), известный сисадмин, сказал мне, что для него «лакмусовой бумажкой» уровня автоматизации является возможность поручить работу менее квалифицированному сотруднику. Например, в одной фирме он автоматизировал задачу ежедневного резервного копирования диска до такой степени, что замену ленты могла выполнить секретарша. Каждый день система отправляла ей и Адаму электронное сообщение с отчетом о статусе резервного копирования, проведенного предыдущей ночью. Как правило, в сообщении содержались указания, какую ленту следует заменить. Если происходил какой-то сбой, секретарша знала, что ничего не следует предпринимать, пока Адам не устранит проблему сам. Со временем он усовершенствовал процедуру так, что система автоматически справлялась со все большим количеством аварийных ситуаций. В конце концов он добился, что система могла работать без его вмешательства месяцами.
В этой главе терминами «сценарий» и «программа» я буду обозначать разные понятия. Сценарий — это короткая программа, возможно всего из нескольких строк. Типичным сценарием является ВАТ-файл, несколько строк на языке Perl или небольшой shell-файл UNIX. Программой я буду называть более длинные программы, разработка которых требует обдумывания и планирования. Как правило, формальный процесс создания программы включает сбор требований, разработку и тестирование. Программы обычно пишутся на компилируемых языках, таких как C++. Интерпретируемые языки, вроде Perl, тоже подходят для создания больших программ, но используются реже. Программисты, пишущие на языке Perl, называют свой код сценарием, если он невелик, и программой, если код имеет значительный объем.
![](data:image/jpeg;base64,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
)
Трудно найти время для автоматизирования процессов, поэтому приходится выбирать. Мы не можем автоматизировать всю нашу работу. Задачи, встающие перед системными администраторами, распадаются на четыре общие категории:
• Простые задачи, выполняемые один раз. К первой категории относится большая часть вашей повседневной работы. Если задача проста и вы выполняете ее один раз, нет смысла ее автоматизировать. На автоматизацию уйдет больше времени, чем на саму задачу.