Скрипт logrotate для ротации логов dovecot

Что-то последнее время часто приходится настраивать ротацию логов dovecot с помощью logrotate. Заметка на память. Всё очень просто. Создаём файлик 1 # vim /etc/logrotate.d/dovecot с содержимым… 1 2 3 4 5 6 7 8 9 10 /var/log/dovecot*.log { mail [email protected] size 10M missingok notifempty delaycompress sharedscripts postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript Для проверки и моментальной ротации можно выполнить logrotate -v /etc/logrotate.d/dovecot Для FreeBSD можно добавить в файл /etc/newsyslog.conf строку 1 /var/log/dovecot.log 644 3 2000 * J /var/run/dovecot/master.pid 30 Вот и всё UPDATE: немного больше информации вы сможете найти по адресу wiki2.dovecot.org/Logging Если при выполнении # logrotate -f -v /etc/logrotate.d/dovecot вы получаете 1 2 3 4 error: skipping "/var/log/dovecot-lda.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation. considering log /var/log/dovecot.log error: skipping "/var/log/dovecot.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation. considering log /var/log/dovecot-sieve.log не спешите делать выводы. Директива “su” указана в основном конфигурационном файле /etc/logrotate.conf, и если ротация выполняется полностью, то ошибок не возникает.

25 березня 2019 · 1 хвилина · 210 слів · dimetrius

Заметки по Linux

Иногда смотришь в top и видишь процесс, например php-fpm, но не видишь полный путь откуда же он был запущен. Находим pid нашего процесса ps ax|grep fpm Выбираем интересующий нас pid ls -l /proc/$pid/exe Получаем /proc/6162/exe -> /usr/sbin/php-fpm5.6

8 березня 2019 · 1 хвилина · 37 слів · dimetrius

Изменяем скорость и дуплекс сетевой карты в Linux

Для изменения скорости и дуплекса сетевой карты, можно воспользоваться утилитой ethtool. Установка ETHTOOL Для установки ethtool, выполните одну из следующих команд, в зависимости от Вашего дистрибутива Linux. Установка ethtool в Fedora, CentOS, RHEL и т. д.: 1 # yum install ethtool Установка ethtool в Ubuntu, Debian и т. д.: 1 # sudo apt-get install ethtool Узнать скорость, дуплекс и прочую информации о сетевом интерфейсе eth0 Для того, чтобы узнать текущую скорость, дуплекс и прочую информацию об интерфейсе eth0, выполните следующую команду с правами пользователя root. 1 # ethtool eth0 Пример результата выполнения команды: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Half Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) Link detected: yes Изменение настроек скорости и дуплекса Данные изменения являются временными и перестанут действовать после перезагрузки. См. п.4, если Вам необходимы изменения на постоянной основе. Примеры Активировать функцию Авто-Определения: # ethtool -s eth0 autoneg on​ ...

27 червня 2018 · 2 хвилин · 307 слів · dimetrius

Диагностика работы DNS

Зачастую, в силу того, что информация в сети распространяется не мгновенно, привязанные к серверу домены начинают работать не сразу. Чтобы не тратить время впустую, ожидая обновления кеша DNS, желательно сразу проверить настройку вашего DNS-сервера и убедиться, что по истечении 72 часов (это максимальное время обновления глобального кеша DNS) ваш домен заработает. Первичная диагностика Whois Начать диагностику следует с запроса whois: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@dns ~]# whois firstvds.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: FIRSTVDS.RU nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 94.250.248.160 state: REGISTERED, DELEGATED, VERIFIED org: CJSC "Pervyj" registrar: REGTIME-REG-RIPN admin-contact: http://whois.webnames.ru created: 2002.08.07 paid-till: 2014.08.08 free-date: 2014.09.08 source: TCI Last updated on 2014.03.18 03:36:35 MSK В данном примере мы видим, что домен проделегирован на сервера имен ns1.firstvds.ru. и ns2.firstvds.ru. с указанием IP-адресов (дочерние NS-сервера всегда прописываются с указанием IP). Это корректный вывод whois и примерно так должен выглядеть ответ whois для зарегистрированного и проделегированного домена. Исключение составляет IP, он указывается только для дочерних NS-серверов. ...

21 лютого 2018 · 13 хвилин · 2749 слів · dimetrius

Как работает DNS

Определение DNS (Domain Name System, «система доменных имён») — компьютерная распределённая система для получения информации о доменах. Основная область применения данной системы — преобразование имени хоста в IP-адрес и предоставления данных о маршрутизации почты. Хост — это любой компьютер или сервер, подключенный к локальной сети или интернету. Принцип работы Схематичное представление процесса определения определения IP-адреса по вводимому имени домена Работа DNS достаточно проста, но из-за незнания её основ возникает основная масса проблем и вопросов при переносе существующего доменного имени и регистрации нового. Остановимся немного подробней на описании самой схемы. Когда пользователь запускает веб-браузер и вводит название домена сайта, его ПК отправляет запрос к DNS-серверу интернет-провайдера для получения IP-адреса, на котором находится домен (1). Если DNS-серверы провайдера не обнаруживают в своем кэше информации о запрашиваемом сайте, то отправляют запрос на корневые DNS-серверы (2). Корневой DNS-сервер ищет в своей базе данных информацию о серверах имен хостинг-провайдера, на которых присутствует этот сайт. Далее, он сообщает их кэширующему DNS-серверу провайдера (3). После того, как кэширующий DNS-сервер интернет-провайдера получает информацию о серверах имен хостинг-провайдера он опрашивает любой из них (4) и, в случае получения положительного результата получения IP-адреса (5), помещает в кэш. Кэширование используется для того, чтобы снизить как нагрузку на интернет-каналы, так и для ускорения получения результата запроса. После этого DNS-сервер провайдера передает IP-адрес браузеру пользователя, совершившему запрос сайта (6). И уже после этого браузер, получив IP-адрес запрашиваемого сайта, переходит на сам сайт (7 и 8). Или вот более точное описание процесса. Ваш браузер об IP-адресе test.ru ничего не знает и с запросом IP-адреса через специальную программу — resolver обращается к локальному серверу имен. Локальный DNS-сервер — это сервер имен вашей локальной сети или DNS-сервер вашего интернет-провайдера. «Откуда браузеру известно о существовании этого локального DNS?» — спросите вы. Все предельно просто. При настройках сетевого подключения вы прописываете IP-адреса DNS-серверов (предпочитаемого и/или альтернативного), один из которых будет отвечать на запросы, посылаемые вашим браузером через resolver — это и есть локальный или местный сервер вашей сети. Вы всегда можете посмотреть IP-адрес вашего локального DNS-сервера. Для этого достаточно посмотреть свойства сетевого подключения, используемого на вашем компьютере. Запрос на IP-адрес test.ru доходит до местного сервера имен. Этот сервер о данном IP-адресе ничего не знает и посылает запрос одному из корневых серверов «.» (root). Корневой сервер отдает локальному серверу IP-адрес сервера, который поддерживает зону .RU. Далее по полученному адресу локальный сервер имен обращается к DNS-серверу, который поддерживает .RU. Этот DNS-сервер, в свою очередь, по полученному запросу отдает IP-адрес сервера, который поддерживает зону test.ru. Местный DNS-сервер с запросом IP-адреса test.ru обращается к DNS-серверу зоны test.ru. Локальный сервер имен получает IP-адрес test.ru от DNS-сервера зоны test.ru. Получив адрес test.ru, локальный DNS-сервер сообщает его вашему браузеру. Важно, что обновление информации о сервера имен провайдера происходит не мгновенно, а через некоторое определенное (для каждого DNS-сервера, в зависимости от настроек и провайдера данные значения могут варьироваться) время. ...

21 лютого 2018 · 3 хвилин · 589 слів · dimetrius

Работа с архиваторами в Linux

Чтобы разархивировать архив упакованный GZ можно воспользоваться следующей командой: 1 gzip -d <имя_файла>.gz

20 лютого 2018 · 1 хвилина · 13 слів · dimetrius

Как проверить использование Inode и выявить что их использовало

**Время от времени, сервисы в Linux могут сообщать что закончилось место и они не могут записать данные. Мы проверяем свободное место, оно есть. Причиной может быть закончившиеся Inode. ** В информатике inode (произносится а́йнод или ино́д), индексный дескриптор — это структура данных в традиционных для ОС UNIX файловых системах (ФС), таких как UFS, ext4. В этой структуре хранится метаинформация о стандартных файлах, каталогах или других объектах файловой системы, кроме непосредственно данных и имени. Для проверки нашего предположения набираем в консоли # df -ih получаем примерно такой вывод 1 2 3 4 5 6 7 8 9 10 Файл.система Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в udev 982K 566 982K 1% /dev tmpfs 987K 850 987K 1% /run /dev/sda2 15M 923K 14M 7% / tmpfs 987K 286 987K 1% /dev/shm tmpfs 987K 7 987K 1% /run/lock tmpfs 987K 16 987K 1% /sys/fs/cgroup /dev/sda1 0 0 0 - /boot/efi tmpfs 987K 38 987K 1% /run/user/1000 /home/user1/.Private 15M 923K 14M 7% /home/user1 Таким образом мы увидели на каком именно разделе могли закончиться Inode. Но как же выявить где именно находится это множество файлов, какой сервис их создал и почему. Допустим у нас закончились Inode в разделе /home. Переходим в него ...

15 лютого 2018 · 2 хвилин · 263 слів · dimetrius

Использование истории команд в BASH на LINUX

Вступление В серверной среде работа с командной строкой занимает много времени. Часто используется оболочка bash – командная оболочка по умолчанию большинства дистрибутивов. Вероятно, во время терминальной сессии общие команды будут повторяться часто, а вариации данных команд – еще чаще. Конечно, сначала набирать каждую команду вручную очень полезно, так как это – лишняя возможность попрактиковаться, но в какой-то момент это начинает надоедать и раздражать. К счастью, bash-оболочка имеет некоторые довольно хорошо разработанные функции истории. Умение продуктивно использовать и управлять историей в bash позволяет тратить меньше времени на ввод команд, и тем самым увеличивает объем выполненной работы. Как известно, среди разработчиков популярен так называемый принцип DRY (Don’t Repeat Yourself). Продуктивное использование истории в bash помогает работать с информацией согласно данному принципу. Это руководство демонстрирует все функции на Linux Ubuntu 12.04, но почти все современные дистрибутивы Linux будут работать подобным образом. Настройки истории в bash Прежде чем использовать историю, нужно отредактировать некоторые настройки bash, чтобы сделать ее более применимой. Bash позволяет редактировать количество предыдущих команд, которые нужно сохранить в истории. Для этого в bash есть две отдельные опции: параметр «HISTFILESIZE» задает количество команд, хранящихся в файле истории, а «HISTSIZE» указывает количество команд, которое сохраняется в памяти для текущей сессии. Это означает, что в памяти можно установить разумные пределы размера истории для текущего сеанса, а также хранить более объемную историю на диске для дальнейшего использования. ...

8 жовтня 2017 · 12 хвилин · 2365 слів · dimetrius

Strace нескольких процессов одновременно

Иногда бывает так что, на первый взгляд, начинает без причины падать apache, или php-fpm. Никакие CoreDump в этом могут не помогать. Часто этот процесс представляет собой связку процессов и мониторить их необходимо все, так как заранее неизвестно, каким из процессов будет отработан наш запрос. На этот случай strace умеет принимать набор pid’ов процессов, на каждый процесс свой аргумент -p. Получаем список всех процессов по имени: 1 pidof apache2 Собираем список аргументов: 1 pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g' Вызываем strace: 1 strace -s 1024 -f $(pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g') На CentOS имя процесса другое: 1 strace -s 1024 -f $(pidof httpd | sed 's/\([0-9]*\)/\-p \1/g') Для трейса php-cgi процессов команда будет следующая: 1 strace -s 1024 -f $(pidof php5-cgi | sed 's/\([0-9]*\)/\-p \1/g') А вот более гибкий вариант для выборки процессов по регулярному выражению: 1 strace -s 1024 -f $(pgrep php5-fastcgi | sed 's/\([0-9]*\)/\-p \1/g') А для Nginx: 1 strace -s 1024 -f $(pidof nginx | sed 's/\([0-9]*\)/\-p \1/g') Для php5-fpm: 1 strace -s 1024 -f $(pidof php5-fpm | sed 's/\([0-9]*\)/\-p \1/g') Для Apache wsgi: 1 strace -s 1024 -f $(ps aux|grep wsgi|grep -v 'grep'|awk '{print $2}'| sed 's/\([0-9]*\)/\-p \1/g')

11 серпня 2017 · 1 хвилина · 192 слів · dimetrius

Заметки по sed

Иногда приходится выполнять сложные замены в конфигурационных файлах. Для подобных целей создана эта заметка. Замена всей строки, которая содержит подстроку 1 sed -i '/location \~.*/c\ location \~\* \^\.\+\\\.(jpg\|gif\|png\|css\|js\|woff2\|woff\|ico|json\)$ {' vhost.conf

14 липня 2017 · 1 хвилина · 30 слів · dimetrius