?

Log in

Tue, Apr. 18th, 2017, 05:11 pm
Получить последние 10 минут почтового лога

Скриптик 10min:


#! /bin/bash

TIME=`date -d '-10minute' +%s`


while read line
do
time=`echo $line | cut -f 1,2,3 -d' ' `
time=`date -d "$time" +%s`
if [ $time -gt $TIME ]
then
echo $line
fi
done


Работает безумно медленно. Но работает.

Строка лога:

Apr 18 16:54:27 mail140 amavis[9271]: (09271-01) Passed CLEAN {RelayedInbound}, [77.52.187.99]:59485 [77.52.187.99] ...

соответственно cut -f 1,2,3 обозначает, что в качестве времени берутся три первых столбца.


Примеряется как конвеер:
sudo tail -n 2000 /var/log/mail.log | ./10min | wc -l
1891

Десять минут содержались в 1891 строке.

Thu, Mar. 30th, 2017, 04:48 pm
Настройка обучения sa-learn из почтовой системы IBM Lotus Notes (часть 2)

Эта статья будет частью 2, потому что в первой будет описано как сделать чтобы весь спам предприятия был доступен через IMAP, а сейчас я настраиваю на боевом сервере вторую часть: получить по IMAP и обучить фильтр.

sudo apt install fetchmail

По умолчанию он ставится не как домен. Нас это устраивает.
Перебираемся в того пользователя, в котором у нас живёт байес:

su
su amavis
cd ~

У каждого пользователя свои настройки fetchmail, поэтому создаём настроку на сервер:
vi ~/.fetchmailrc

poll mailserver.xxx.by with
proto IMAP
user 'koshka@iba.by' there with password 'секретный пароль'
options keep ssl sslfingerprint '51:13:C6:5C:4B:55:51:45:9C:B5:08:72:15:F3:87:97'

Отпечаток я взял как в примере, потом запустил fetchmail -v, который радостно написал: "ничего не работает, сервер прислал вот такой отпечаток, поэтому работать не буду". Ну я и внёс в конфиг тот отпечаток, который прислал сервер. Как его по умному определить я не знаю.

Ограничим права к нашему паролю:
chmod 600 ~/.fetchmailrc

Пишем скрипт:

vi learn

#!/bin/bash
/usr/bin/fetchmail -a -n -s \
--folder 'Inbox' \
-m '/usr/bin/sa-learn -C /etc/spamassassin --no-sync --spam' \
| awk '/Learned tokens from 1 message/ { learned++; } /1 message(s) examined/ { all++; }\
END { print "Learned " learned " from " learned " messages."; }'
/usr/bin/sa-learn --sync

Права на запуск

chmod +x learn


Задаём рассписание:

crontab -e

Добавляем

MAILTO=beliashou@iba.by

*/5 * * * * ~/learn | grep "[0-9]"

Письма будут приходить

Thu, Mar. 23rd, 2017, 01:51 pm
Выборка из логов в почту, если есть что

tail -n 20000 /var/log/domino/backupdouble.log | grep "Not replicating" | awk '{ print $5 }' | sort -u | ifne mail -s "Backupdouble not replicating" beliashou@example.com

Достаточно удобно получать сообщения о том, что в логе появилась запись о какой-то ошибке.

ifne из пакета moreutils выполняет следующую за ней команду только в случае, если сообщение не пустое.

Мне понравился рецепт с форума по поводу отправки сообщения только в случае, если что-то нашлось: они предлагают настраивать почтовое оповещение в crontab, а в качестве команды ставить команду выборки (например, grep). Если что-то нашлось и есть вывод - будет и письмо. Если нет, то не будет.

Mon, Mar. 20th, 2017, 04:29 pm
Формула для zabbix - отслеживание файла-флага занятости

[ -f /data/busy.flg ] && echo $((`date +%s` - `stat /data/busy.flg -c %X`)) || echo 0


Надо сказать, что красиво и ээфективно. Возвращает возраст файла или ноль (если файла нет).

Wed, Mar. 1st, 2017, 10:33 am
Киндл не может подключиться к Wifi

Купил вчера новый киндл. При попытке подключиться к Wifi выдаёт ошибку подключения. Сеть видит, но подключиться к ней не может без обоснованных жалоб. Попробовал свой старый киндл - он подключается. Удалил соединение и попытался снова соединиться - та же картина. Причём, всё то же самое, если поднять точку доступа на телефоне.

Судя по всему, мой старый киндл тайком от меня обновился до версии 4.1.13. С сохранённым соединением проблемы не возникло, а новое соединение отказалось создавать. Помог ответ на форуме: надо использовать в wifi каналы с 1 по 11, чтобы американские устройства чувстовали себя как дома. Поменял канал на 6-й - сразу всё подключилось. Правда, новый киндл отказался подключаться к аккаунту amazon, но это уже совсем другая история.

PS: Продавец заменил киндл, новый подключается без вопросов.

Fri, Feb. 17th, 2017, 02:27 pm
Допрыгались: не могу мониторить сервер Zabbix-ом, потому что сервер отдаёт сжатые страницы

Сделал мониторинг сервера, мониторинг сайта на нём. Всё было бы хорошо, но zabbix выполняет curl и в ответе не находит нужную подстроку. Проверяю в консоли: curl выдаёт только кракозябы. Начинаю разбираться - оказывается, что это страница сжата gzip, но это не волнует ни curl, ни его друга zabbix-а.

Авторы, как бы знают, что такое происходит, но их это не беспокоит. Есть решение, которое заключается в полной пересборке сервера (боюсь влазить) или в отключении шифрования на сайте продакшена.

Для того, чтобы не потерять статистику времени открытия сайта, иду на хитрость: чисто статистически на старице будет знак "=", которого вроде как нет в Internal Server Error, хотя, если это сообщение тоже будет сжато, то мониторинг ничего не заметит.

Куда копать?

Ещё оказалось, что так как архивирует nginx, то есть пару разделов, которые обходятся без кеширования, а проксируются в чистом виде. Сделал ещё пару тестов на такие страницы.

10 most recent