Получение отчетов logwatch через Telegram

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

На сервере настроен logwatch, но из-за вышеуказанной причины он больше не мог слать отчеты, и это оставлять было нельзя. Очень важно мониторить сервер, поэтому получать такие отчеты нужно каждый день. Я подумал, что Telegram подойдет как временная мера или даже как основной способ доставки отчетов logwatch.

В результате, получился вот такой скрипт. Этим кодом можно заменить стандартный скрипт logwatch или сделать отдельный (тогда отчеты будут отправляться и на почту, и в Telegram). Я сделал отдельный скрипт, чтобы сохранить дефолтный. Обратите внимание, что скрипт тестировался на сервере с Debian 8.

Итак, нужно с правами root сделать файл в папке cron.daily, например,  такой /etc/cron.daily/00logwatch-telegram. Не забудьте сделать его исполняемым.

И поместить в него следующий код. В секции Config не забудьте указать токен вашего бота и chat_id группы. Я не буду останавливаться на вопросе создания своего бота или как узнать chat_id группы, это легко гуглится.

После того, как вы это сделаете, каждое утром вам в Telegram будет приходить отчет logwatch.

Круто, правда? Люблю Telegram.