Systemd: полное руководство для админов + примеры

Введение
В мире Linux и Unix-подобных систем исторически доминировала система инициализации SysVinit. Её процесс загрузки был последовательным и понятным: она запускала скрипты (обычно расположенные в /etc/rc.d/ или /etc/init.d/) по одному, в строгом порядке, определяемом симлинками в каталогах rcN.d.

Но с развитием Linux и увеличением сложности систем — недостатки SysVinit стали вполне очевидны:

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

Отсутствие контроля за процессами. Init только запускал скрипты, но не мог отслеживать состояние запущенных служб (упала? требует перезагрузки?).

Разрозненность логирования. Каждая служба вела логи «по-своему» (в /var/log/), не было какого-то единого централизованного интерфейса для просмотра логов.

Полагаю, именно эти проблемы привели к появлению альтернатив (Upstart, OpenRC), но именно systemd, представленный Леннартом Поттерлингом в 2010 году, стал неким «де-факто» стандартом для множества крупных дистрибутивов (Fedora, Debian, Ubuntu, Arch и др.). Он был разработан как кардинально новое решение для преодоления ограничений.

Читать

Определение состояния дисков по данным SMART в Windows 10

Удивительно, но факт. В windows 10 есть встроенный функционал для чтения данных SMART с установленных дисков.

Например, команду что бы выяснить текущий статус всех дисков (для которых в BIOS или UEFI активирован SMART) запомнить лечге всего:

wmic diskdrive get status

Для каждого диска в системе вы получите Ok в случае — если жить будет, и bad, unknown или caution во всех остальных случаях.

Посмотреть подробности можно так:

wmic /namespace:\\root\wmi path MSStorageDriver_FailurePredictStatus

Все команды следует выполнять с правами администратора.

Обновление php до версии 7.2 в trusty tahr (14.04)

Как и обещал (https://pustovoi.ru/2019/2978) решил вопрос с php 7.2 под Ubuntu 14.04.

Собственно, что б не звали меня единоличником, забэкпортил его в свой ppa под ubuntu 14.04 (debian weezy) на launchpad. Обновления не обещаю.

Подключается командой:

sudo add-apt-repository ppa:serp2002/php7-backport
sudo apt-get update

При установке они НЕ заменяют php5, а тоят спокойненько рядом.

PS обновления для более свежих дистрибутивов можно получать из ppa Ondřej Surý:

add-apt-repository ppa:ondrej/php

Кодирование\декодирование MIME subject для почтовых сообщений на русском

В догонку к вот этому посту https://pustovoi.ru/2017/2469.

Что бы сделать шаблоны для postfix с темой сообщения на русском (некоторые пользователи, как огня боятся бусурманских слов), придется немного поколдовать, т.к. простое

Subject: Ваше сообщение доставлено!

Не сработает.

Читать

Минимум один трюк Vim, про который вы не знали

Я уже восемь лет работаю в Vim и постоянно открываю что-то новое. Принято считать это достоинством Vim. Как по мне, так это недостаток открытости: куча скрытых функций спрятаны слишком глубоко.

Вот говорят о красоте модального редактирования и текстовых объектах, но мне кажется, что суть Vim не в этом. Vim — это лоскутное одеяло из подсистем, под завязку забитых дополнительными инструментами. Только в обычном режиме редактирования более сотни комбинаций клавиш! Такая плотность инструментария в значительной степени объясняет, почему Vim настолько полезен. Если «показать все теги для ключевого слова» — это просто g], то этой командой будут пользоваться гораздо чаще.

В системах с недостатком открытости приходится полагаться на руководства. Но для Vim их не так уж много. Есть статьи для новичков, такие как ciw (не путать с CIA, мануалом ЦРУ по Vim) и тому подобное. И есть статьи экспертов, которые погружаются в подсистемы. Но никто на самом деле не говорит об этих особых трюках, которые заставляют воскликнуть: чёрт побери, как мне это было нужно в течение последних шести лет!

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

Читать

Про обновление PHP на CentOS

Кто в повседневной жизни пользуется какой-нибудь CMS, или админит хостинг сервер не раз наверное сталкивался с необходимостью обновления версии PHP. Вот и я этим вопросом очередной раз озадачился.

Сегодня расскажу как это было на CentOS. (Людителям битрикса посвящается).

С 30 июня 2019 года будет ограничена поддержка наших продуктов на PHP версии ниже 7.1. Пожалуйста, запланируйте обновление PHP или обратитесь в службу технической поддержки вашего хостинга.

Читать

3 нужных команды для управления RAID на сервере DELL

Все заклинания следует делать из директории в которой лежит бинарник perccli64. Ну или если ты его прописал в PATH, то из любого другого места (не забудь тогда убрать ./ перед командой).

Самая главная команда:


./perccli64 show all

Поведает нам номер контроллера и его состояние.
Читать

8 примеров команд для hpacucli на сервере HP под Linux

hpacucli это консольное приложение для управления и мониторинга RAID массивов на HP серверах. Логика работы программы не очень очевидна, поэтому предлагаю вашему вниманию 8 самых важных заклинаний %)

  1. Во первых, есть два пути выполнить команду, в интерактивном режиме, и в режиме для скриптов, в котором все задается непосредственно в аргументах командной строки. В интерактивном режиме приглашение принимает вид «=>». Что бы вызвать интерактивный режим, нужно запустить приложение без аргументов.

    [root@10 ~]# hpacucli
    HP Array Configuration Utility CLI 9.40.12.0
    Detecting Controllers…Done.
    Type «help» for a list of supported commands.
    Type «exit» to close the console.
    => rescan

    Тот же самый эффект будет если запустить программу с аргументом:

    # hpacucli rescan

  2. Состояние логических и физических дисков

    => ctrl all show config
    Smart Array P410 in Slot 4 (sn: PACCR9SYN3JR )
    array A (SAS, Unused Space: 0 MB)
    logicaldrive 1 (558.7 GB, RAID 5, OK)
    physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
    physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
    physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
    physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK, active spare)

    SEP (Vendor ID PMCSIERA, Model SRC 8x6G) 250 (WWID: 500143800695275F)

    В данном случае, у нас RAID 5, из 3 дисков + 1 spare. Еще из полезной информации — номер слота в котором стоит рейд контроллер. В данном случае — слот 4.

Читать

Ошибка GPG NO_PUBKEY после apt-get update

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

Со временем это надоедает.

У меня так было с горячими клавишами в screen, и так есть с командой загрузки GPG ключа для нового репозитория.

Сегодня добавил реп с яндекс диском на сервер, сделал apt-get update и получил вышеозначенную ошибку NO_PUBKEY. А это значит, что в хранилище открытых ключей моего сервера, нет ключа которым подписаны списки пакетов данного репа, и он (apt-get) предупреждает, что возможно пакеты того… в смысле с руткитами и троянами, типа снимает с себя всякую ответственность. Читать

Восстановление innoDB базы mysql

Все бывает в первый раз. Вот и вчера, привычно потушил mysql, привычно запустил… и она не запустилась.
В логах при этом нашел сперва много вот таких строк:

[Warning] /usr/sbin/mysqld: Forcing close of thread 77 user: ‘zabbix’

а потом вот это:

http://pastebin.com/cSfcpPGW

вот в этом месте и пришло осознание…. приехали. Читать