Ротация логов процессов в supervisord

Если вы пользуетесь supervisord, то наверняка сталкивались с неудобством ротации логов в нём.

Типичная настройка в конфигурационном файле процесса в /etc/supervisor.d/ выглядит так:

stdout_logfile=/var/log/progam/process_%(process_num)02d.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=50

Логи складываются в отдельные файлы и ротируются по достижении размера в 100 мегабайт. Данный способ не очень удобен, особенно если нужно искать логи за определённую дату.

В этом случае на помощь приходит logrotate.

В конфигурационном файле процесса меняем опции логов:

stdout_logfile_maxbytes=0
stdout_logfile_backups=0

И добавляем в /etc/logrotate.d/processname:

/var/log/program/process_*.log {
    create 0600 root root
    su root root
    daily
    copytruncate
    compress
    missingok
    notifempty
}

Теперь логи будут складываться в «суточные» файлы и автоматически сжиматься.

Скрипт автоматизированной компиляции ядра Linux

Я уже давно писал, что компиляция ядра — это просто. Со времени написания той записи прошло более семи лет. И я решил поделиться своим скриптом, который автоматизирует процесс сборки нового ядра.

Всё, что нужно, это скачать исходник очередной версии ядра в каталог /usr/src:

cd /usr/src
wget -c https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.8.10.tar.xz

И запустить скрипт build.sh, который у меня лежит там же в /usr/src. Содержимое скрипта:

#!/bin/sh

# unpack and prepare
cd /usr/src
archname=`find *.xz -type f`
tar xxf $archname
dirsrc=`find -P linux-* -maxdepth 0 -type d | head -n 1`
rm linux
ln -s $dirsrc linux

# compile
cd /usr/src/linux
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
make menuconfig
make-kpkg clean
startdate=`date`
fakeroot make deb-pkg
finishdate=`date`

rm -rf $dirsrc

echo "Start time: $startdate"
echo "Finish time: $finishdate"

После работы скрипта на выходе получаются готовые .deb пакеты, которые остаётся только установить.

Если у вас есть идеи по улучшению этого скрипта — с удовольствием прочту их в комментариях.

VNC сервер и SDDM

В Debian Stretch в KDE5, он же Plasma, уже давно используется SDDM вместо KDM в качестве дисплейного менеджера. x11vnc не умеет автоматически распознавать SDDM и подхватывать его файлы при создании сервера. Следующий набор команд делает это автоматически:

x11vnc -nevershared -noxdamage -modtweak -xkb -forever -auth `find /var/run/sddm/ -type f` -rfbauth /home/alexey/.vnc/passwd

В файле /home/alexey/.vnc/passwd у меня лежит пароль для подключения к VNC серверу.

Debian snapshot

Пользователям testing дистрибутива Debian довольно часто приходится сталкиваться с нерешёнными зависимостями в новых версиях пакетов, при установке обновлений, и, как следствие, с неработающими программами. Хорошо, если это что-то незначительное. А если это пакеты, входящие в состав KDE Plasma, например? В такие моменты возникает желание вернуться к предыдущей версии репозитория и переставить рабочие пакеты вместо сломанных. И такая возможность есть — http://snapshot.debian.org, хранилище «слепков» репозиториев. Пользоваться им довольно просто, инструкция на первой странице сайта довольно понятна.

Да, придётся вручную выяснить, какие пакеты сломаны или зависят от сломанных пакетов, удалить их и поставить из репозитория за выбранную дату. Но зато ваша система будет корректно работать. 🙂

Возрождение

Много воды утекло с момента последнего обновления блога. За эти почти два года произошло огромное количество изменений. Jessie стал стабильным, тестовый дистрибутив теперь Stretch. KDE обновился до пятой версии и теперь он Plasma. Ядро теперь четвёртой версии, а IPv6 начинается встречаться всё чаще и чаще. Также появились новые железяки и полезные программные средства, которые продолжают нас радовать и облегчать жизнь. А уж с выходом Windows 10 с её драконовскими средствами слежения за пользователями всё больше и больше людей обращают свой взор в сторону других операционных систем.

В связи с этим мною было принято решение реанимировать блог и продолжать вести свои записи. Как говорится, оставайтесь с нами. 🙂