Skip to content

Home Администрирование Планирование запуска процессов Python
Планирование запуска процессов Python

Теперь, когда мы рассмотрели разнообразные способы работы с процессами в языке Python, нам следует поговорить о способах планирования выполнения этих процессов. Для запуска программ, написанных на языке Python, вполне подходит старый добрый планировщик cron.

Одна из новых замечательных особенностей планировщика cron, имеющегося в большинстве POSIX-совместимых систем, заключается во введении каталогов планирования. Это и есть то, из-за чего мы используем cron, так как достаточно просто скопировать сценарий на языке Python в один из четырех каталогов по умолчанию: / etc/ cron. daily, / etc/ cron. ho- urly, /' etc/' cron. monthly и / etc/ cron. weekly.

Достаточно много системных администраторов хотя бы раз в своей жизни обеспечивали возможность отправки отчета об использовании дискового пространства по электронной почте. Для этого вы просто помещаете в каталог / etc/ cron. daily сценарий на языке bash, который содержит примерно следующее:

Сохранив сценарий под именем / etc/ cron. daily/ dlskusage. sk, вы начинаете каждый день получать по электронной почте отчеты, имеющие примерно такой вид:

Но существует лучший путь. Даже для реализации заданий планировщика cron можно использовать преимущества языка Python вместо bash или Perl. В действительности планировщик cron и Python прекрасно работают вместе. Давайте возьмем сценарий на языке bash и реализуем его на языке Python, как показано в примере 10.25.

Пример 10.25. Отсылка ежедневного отчета об использовании дискового пространства по электронной почте

Это тривиальный рецепт создания автоматизированного отчета об использовании дискового пространства на базе cron, но он прекрасно подойдет для решения множества задач. Теперь подробнее рассмотрим, что делает этот небольшой фрагмент программного кода на языке Python. В первую очередь, с помощью subprocess. Рopen() вbinолняется чтение потока стандартного вывода команды df. Затем создаются переменные для заполнения полей From, To и Suьject. Затем объединением всех строк создается сообщение. Это самая сложная часть сценария. В заключение мы указываем имя localhost в качестве имени сервера исходящей почты и передаем переменные, созданные ранее, функции server. sendmail().

Для того чтобы использовать такой сценарий, его обычно помещают в файл / etc / cron . daily / nightly _ dlsk _ report . py .

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

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top