Коснулся на днях темы Bitrix и узнал некоторые подробности окружения, где его удобно запускать. Я последний раз разворачивал свежий Битрикс прошлым летом. И на тот момент компания предлагала автоматически развернуть окружение на базе системы Centos Stream 9, которую на практике в проде никто не использует. Я тогда удивился этому событию и собрал сам окружение на базе Debian 12.
Сейчас этот вопрос уже решён. Компания Битрикс представила рабочее окружение VMBitrix на базе следующих систем:
- Alma Linux 9
- CentOS Stream 9
- Oracle Linux 9
- Rocky Linux 9
Честно говоря, я ждал и надеялся, что будет переход на deb дистрибутивы, в частности Debian. Это упростит и поддержку отечественных систем, в частности Astra Linux, которая тоже на deb пакетах живёт. Но этого не случилось.
Если же вам нужно окружение именно на Debian, то можно собрать самостоятельно на базе их же свежей статьи:
⇨ Настройка окружения для Debian 12
Мне такое решение ближе, потому что в своей работе полностью перешёл на Debian, но тут есть подводные камни, особенно если работаете с внешними подрядчиками или нет взаимопонимания со своими разработчиками. Если начнутся какие-то проблемы, то у разработчиков будет большой соблазн обвинить сервер и окружение в частности в том, что там что-то не так настроено. Я с этим сталкивался лично не раз, поэтому несмотря на свои предпочтения, лучше разверну Битрикс в их же bitrix-env, чтобы просто снять с себя эти вопросы.
Окружение это доступно теперь в двух форматах:
1️⃣ Готовый образ VM под все популярные системы виртуализации: VirtualBox, VMWare, HyperV, Vagrant, ProxmoX (почему-то написан именно так, с заглавной X). Не рекомендую использовать образ VM. Когда что-то пойдёт не так или банально место на диске закончится (там 50 ГБ), столкнётесь с проблемами. Мне так по поводу Zabbix регулярно пишут. Разворачивают его из готового образа, а потом не знаю, что там с ним делать и как решать проблемы. Лучше установите чистую систему так, как вам нужно, и разверните из скрипта.
2️⃣ Скрипт bitrix-env-9.sh, который разворачивает окружение на вашем сервере. Я развернул и посмотрел на него на Rocky Linux. Выглядит установка вот так:
Установилось не с первой попытки. То один, то другой нужный пакет не мог загрузиться с зарубежных репозиториев. В итоге с 3-й попытки всё получилось. Ждём минут 10 и получаем преднастроенное окружение на базе следующих компонентов:
- Nginx + Apache2 + PHP 8.4
- Percona Server 8.4
- Redis или Memcached
- Поиск Sphinx
После установки достаточно создать пул в разделе 1. Create management pool on the server и скопировать в директорию
Я проверил на виртуалке с 1CPU и 2GB памяти. Тестовый ненагруженный портал нормально установился и запустился.
В целом, всё осталось плюс-минус как и раньше, ещё лет 10 или более назад, только на актуальном ПО. Принципиальных изменений нет. У Битрикса всё стабильно. Корпоративный портал содержит 211 тысяч файлов 😱 Развернул из любопытства демо версию.
#bitrix
Сейчас этот вопрос уже решён. Компания Битрикс представила рабочее окружение VMBitrix на базе следующих систем:
- Alma Linux 9
- CentOS Stream 9
- Oracle Linux 9
- Rocky Linux 9
Честно говоря, я ждал и надеялся, что будет переход на deb дистрибутивы, в частности Debian. Это упростит и поддержку отечественных систем, в частности Astra Linux, которая тоже на deb пакетах живёт. Но этого не случилось.
Если же вам нужно окружение именно на Debian, то можно собрать самостоятельно на базе их же свежей статьи:
⇨ Настройка окружения для Debian 12
Мне такое решение ближе, потому что в своей работе полностью перешёл на Debian, но тут есть подводные камни, особенно если работаете с внешними подрядчиками или нет взаимопонимания со своими разработчиками. Если начнутся какие-то проблемы, то у разработчиков будет большой соблазн обвинить сервер и окружение в частности в том, что там что-то не так настроено. Я с этим сталкивался лично не раз, поэтому несмотря на свои предпочтения, лучше разверну Битрикс в их же bitrix-env, чтобы просто снять с себя эти вопросы.
Окружение это доступно теперь в двух форматах:
# dnf install wget
# wget https://repo.bitrix.info/dnf/bitrix-env-9.sh
# chmod +x bitrix-env-9.sh
# ./bitrix-env-9.sh
Установилось не с первой попытки. То один, то другой нужный пакет не мог загрузиться с зарубежных репозиториев. В итоге с 3-й попытки всё получилось. Ждём минут 10 и получаем преднастроенное окружение на базе следующих компонентов:
- Nginx + Apache2 + PHP 8.4
- Percona Server 8.4
- Redis или Memcached
- Поиск Sphinx
После установки достаточно создать пул в разделе 1. Create management pool on the server и скопировать в директорию
/home/bitrix/www
скрипт bitrixsetup.php для установки новой версии продукта, либо восстановить его из бэкапа. Я проверил на виртуалке с 1CPU и 2GB памяти. Тестовый ненагруженный портал нормально установился и запустился.
В целом, всё осталось плюс-минус как и раньше, ещё лет 10 или более назад, только на актуальном ПО. Принципиальных изменений нет. У Битрикса всё стабильно. Корпоративный портал содержит 211 тысяч файлов 😱 Развернул из любопытства демо версию.
#bitrix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
У меня в управлении есть небольшая серверная на несколько серверов. Там очень давно трудится APC Smart-UPS 2200. Больше всего люблю УПСы именно этого бренда. Ниже расскажу, почему. Но сейчас они стали очень дорогими, и качество упало, так что покупать их перестали.
Ему уже 2 раза меняли батареи. Пришло время очередной замены. Я без задних мыслей заказал совместимую модель батареи - RBC11. В этот раз это был не оригинал, потому что он очень дорогой, да и с наличием плохо, предлагают под заказ. А совместимые копии в 2 раза дешевле и есть в наличии. Оригинальные работали по 5-6 лет, посмотрим, сколько эти проживут.
Батареи приехали с другими разъёмами. Не подходили к тем, что есть на UPS. На вид почти такие же, но с небольшими отличиями и не лезут. Не знаю, с чем это связано. Может быть с тем, что UPS очень старый. Сам он пишет в статусе, что от 2009 года. Я собственно, поэтому и решил написать заметку, чтобы тот, кто будет покупать батареи имел ввиду, что разъёмы могут не подойти.
Особых проблем в итоге это не доставило, так как очень легко получилось перекинуть провода со старых батарей на новые. Подозреваю, что это может лишить гарантии. Но деваться некуда. Так что заранее уточняйте, подойдут ли разъёмы батареи к вашему УПСу.
Теперь по поводу APC. Я всегда заказывал их из-за софта apcupsd. Это кроссплатформенная программа, которая поддерживает все популярные операционные системы и может работать в режиме сервер-клиент.
Мы берём UPS, подключаем его по USB порту к любому серверу. Я обычно беру с Linux. Настраиваем на нём режим сервера. На всех остальных серверах, подключенных к этому УПСу ставим приложение-клиент, которое берёт статус УПСа по сети. Если пропадает электричество, все сервера корректно завершают свою работу.
Apcupsd легко настраивается и переносится с системы на систему. Там всего лишь один конфигурационный файл для сервера и клиента. Никакие драйвера отдельно ставить не надо. По крайней мере с УПСами по USB я проблем не испытывал и никаких дополнительных действий не делал.
Предложенная программа лично мне нравится намного больше вендорского софта. Она и настраивается проще, и работает надёжнее. Последний раз, где я участвовал, покупали какие-то другие УПСы, уже не помню какие. Там другой софт был, вообще не понравился. По веб интерфейсу надо лазить, кучу всего менять. Сам софт тяжелый, громоздкий. Вообще не то после apcupsd, который ставится из стандартных репозиториев и весит копейки.
После замены батарей запустил утилиту в комплекте
- выполнил самодиагностику, убедился, что всё в порядке
- установил дату батареи на день замены
- выполнил калибровку батареи
В процессе калибровки нагрузка работала от батарей. Длилась калибровка минут 40-50, то есть батареи держали хорошо. К УПСу подключены два 1U сервера и два 2U, работают без особой нагрузки. Плюс несколько свитчей. Очень простая и надёжная железка. Жаль, что это качество APC уже давно сошло на нет. А вместе с ростом цены наоборот упало.
Программа apcupsd поддерживает УПСы не только APC, но и некоторых других вендоров. Например, некоторые модели Ippon. Если будете подбирать себе серверный УПС, рекомендую обратить внимание на этот софт и если есть возможность, купите совместимый с ней UPS. Это упростит вам настройку и поддержку работы.
#железо
Ему уже 2 раза меняли батареи. Пришло время очередной замены. Я без задних мыслей заказал совместимую модель батареи - RBC11. В этот раз это был не оригинал, потому что он очень дорогой, да и с наличием плохо, предлагают под заказ. А совместимые копии в 2 раза дешевле и есть в наличии. Оригинальные работали по 5-6 лет, посмотрим, сколько эти проживут.
Батареи приехали с другими разъёмами. Не подходили к тем, что есть на UPS. На вид почти такие же, но с небольшими отличиями и не лезут. Не знаю, с чем это связано. Может быть с тем, что UPS очень старый. Сам он пишет в статусе, что от 2009 года. Я собственно, поэтому и решил написать заметку, чтобы тот, кто будет покупать батареи имел ввиду, что разъёмы могут не подойти.
Особых проблем в итоге это не доставило, так как очень легко получилось перекинуть провода со старых батарей на новые. Подозреваю, что это может лишить гарантии. Но деваться некуда. Так что заранее уточняйте, подойдут ли разъёмы батареи к вашему УПСу.
Теперь по поводу APC. Я всегда заказывал их из-за софта apcupsd. Это кроссплатформенная программа, которая поддерживает все популярные операционные системы и может работать в режиме сервер-клиент.
Мы берём UPS, подключаем его по USB порту к любому серверу. Я обычно беру с Linux. Настраиваем на нём режим сервера. На всех остальных серверах, подключенных к этому УПСу ставим приложение-клиент, которое берёт статус УПСа по сети. Если пропадает электричество, все сервера корректно завершают свою работу.
Apcupsd легко настраивается и переносится с системы на систему. Там всего лишь один конфигурационный файл для сервера и клиента. Никакие драйвера отдельно ставить не надо. По крайней мере с УПСами по USB я проблем не испытывал и никаких дополнительных действий не делал.
Предложенная программа лично мне нравится намного больше вендорского софта. Она и настраивается проще, и работает надёжнее. Последний раз, где я участвовал, покупали какие-то другие УПСы, уже не помню какие. Там другой софт был, вообще не понравился. По веб интерфейсу надо лазить, кучу всего менять. Сам софт тяжелый, громоздкий. Вообще не то после apcupsd, который ставится из стандартных репозиториев и весит копейки.
После замены батарей запустил утилиту в комплекте
apctest
, выполнил тут же в консоли несколько действий:- выполнил самодиагностику, убедился, что всё в порядке
- установил дату батареи на день замены
- выполнил калибровку батареи
В процессе калибровки нагрузка работала от батарей. Длилась калибровка минут 40-50, то есть батареи держали хорошо. К УПСу подключены два 1U сервера и два 2U, работают без особой нагрузки. Плюс несколько свитчей. Очень простая и надёжная железка. Жаль, что это качество APC уже давно сошло на нет. А вместе с ростом цены наоборот упало.
Программа apcupsd поддерживает УПСы не только APC, но и некоторых других вендоров. Например, некоторые модели Ippon. Если будете подбирать себе серверный УПС, рекомендую обратить внимание на этот софт и если есть возможность, купите совместимый с ней UPS. Это упростит вам настройку и поддержку работы.
#железо
В Debian есть интересная библиотека libeatmydata, которая подменяет системные вызовы fsync, fdatasync, sync и некоторые другие на пустышки. Эти команды сразу выдают положительный результат, ничего не делая. То есть не работает подтверждение записи на диск.
Это существенно ускоряет все операции записи, но и, что логично, создаёт вероятность потери данных, так как реально они залетают в кэш, а не на диск. И будут записаны в зависимости от настроек и параметров системы, когда ядро посчитает нужным выполнить синхронизацию: по таймеру фоновой синхронизации или недостатка свободной оперативной памяти.
Работает это примерно так:
Реально там ещё пару проверок с if, но по сути всё так и есть для всех системных вызовов, что она она перехватывает.
Эту возможность без особых опасений можно использовать во временных или тестовых средах, где не важна сохранность данных. Причём сделать это очень просто. Ставим пакет:
Запускаем через него любую команду. Я протестировал на старой виртуалке, которую давно не обновляли. Сделал запуск обновления без eatmydata и с ней. Разница получилась заметной.
Напомню, что реальной установкой пакетов занимается утилита
Я выполнил полное обновление пакетов в два этапа, откатив первое обновление на изначальный снепшот:
Работа dpkg занимает где-то треть всего времени, ещё треть загрузка пакетов, и треть пересборка initramfs. Без eatmydata dpkg работала примерно 30 секунд, с ней – 20.
Или вот ещё более наглядный тест. Запускаем создание файла в режиме синхронизации и подтверждения записи каждого блока:
И то же самое через eatmydata:
Эта возможность может пригодиться при сборке контейнеров, образов, раскатки тестовых сред. Можно запускать тестовую СУБД через eatmydata. Да всё, что угодно на тестовом сервере.
Если у вас есть какие-то скрипты, которые не хочется переделывать, добавляя в начало каждой команды eatmydata, можете просто задать переменную окружения, в том числе глобальную в
И все процессы будут писать без подтверждения записи в кэш.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Это существенно ускоряет все операции записи, но и, что логично, создаёт вероятность потери данных, так как реально они залетают в кэш, а не на диск. И будут записаны в зависимости от настроек и параметров системы, когда ядро посчитает нужным выполнить синхронизацию: по таймеру фоновой синхронизации или недостатка свободной оперативной памяти.
Работает это примерно так:
int fsync(int fd) {
return 0;
}
Реально там ещё пару проверок с if, но по сути всё так и есть для всех системных вызовов, что она она перехватывает.
Эту возможность без особых опасений можно использовать во временных или тестовых средах, где не важна сохранность данных. Причём сделать это очень просто. Ставим пакет:
# apt install eatmydata
Запускаем через него любую команду. Я протестировал на старой виртуалке, которую давно не обновляли. Сделал запуск обновления без eatmydata и с ней. Разница получилась заметной.
Напомню, что реальной установкой пакетов занимается утилита
dpkg
, а не apt
. Dpkg для надёжности выполняет все действия с подтверждением записи. Так что если запустить её через eatmydata, она отработает гораздо быстрее. Я выполнил полное обновление пакетов в два этапа, откатив первое обновление на изначальный снепшот:
# time apt upgrade -y
Fetched 249 MB in 30s (8,183 kB/s)
real 1m 43.690s
# time eatmydata apt upgrade -y
Fetched 249 MB in 33s (7,671 kB/s)
real 1m 36.984s
Работа dpkg занимает где-то треть всего времени, ещё треть загрузка пакетов, и треть пересборка initramfs. Без eatmydata dpkg работала примерно 30 секунд, с ней – 20.
Или вот ещё более наглядный тест. Запускаем создание файла в режиме синхронизации и подтверждения записи каждого блока:
# dd if=/dev/zero of=/mnt/tempfile bs=1M count=512 oflag=dsync
536870912 bytes (537 MB, 512 MiB) copied, 1.95211 s, 275 MB/s
И то же самое через eatmydata:
# eatmydata dd if=/dev/zero of=/mnt/tempfile bs=1M count=512 oflag=dsync
536870912 bytes (537 MB, 512 MiB) copied, 0.343773 s, 1.6 GB/s
Эта возможность может пригодиться при сборке контейнеров, образов, раскатки тестовых сред. Можно запускать тестовую СУБД через eatmydata. Да всё, что угодно на тестовом сервере.
Если у вас есть какие-то скрипты, которые не хочется переделывать, добавляя в начало каждой команды eatmydata, можете просто задать переменную окружения, в том числе глобальную в
/etc/environment
:LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so
И все процессы будут писать без подтверждения записи в кэш.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Открытый практикум Linux by Rebrain: Знакомство с LVM
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉 Регистрация
Время проведения:
7 мая (среда), 20:00 по МСК
Программа практикума:
▪️Старый подход к разметке пространства. Чем он плох?
▫️Базовые понятия о файловой системе
▪️Основы LVM
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 10+ лет опыта работы с ОС Linux и 8+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFGwYtnC
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉 Регистрация
Время проведения:
7 мая (среда), 20:00 по МСК
Программа практикума:
▪️Старый подход к разметке пространства. Чем он плох?
▫️Базовые понятия о файловой системе
▪️Основы LVM
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 10+ лет опыта работы с ОС Linux и 8+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFGwYtnC
Хочу обсудить с вами одну тему, так как думаю, она актуальна для многих читателей и в том числе для меня лично. По статистике сайта и ВК аудитория 35+ преобладает над всеми остальными. Это более 50% всех читателей. В TG нет такой статистики, но думаю, что она схожа.
Навеяло тему вот это видео:
⇨ Университет пережиток прошлого? Нужен ли вуз DevOps да и любому айтишнику.
В целом, я согласен со всеми доводами автора. Если кратко, то он за образование в ВУЗе практически во всех ситуациях. Это будет только польза, даже если не доучиться. Но с другой стороны у меня есть много примеров, когда по большому счёту очное вузовское образование и не нужно было.
1️⃣ Приведу первый свежий пример, который меня заставил в своё время призадуматься. Один знакомый, далёкий от айти, попросил совета по поводу сына. У него сын учился в 10-м классе. Самостоятельно увлёкся программированием. Сам обучался, освоил неплохо. Начал работать и зарабатывать приличные деньги. Стал писать софт под iOS. Уже в начале 11-го класса одними подработками он получал доход больше отца и полностью сам себя обеспечивал.
Собственно, отец ко мне и обратился с советом, как быть. Сын не хотел поступать в ВУЗ, а хотел продолжать учёбу по теме программирования и работать. А отец переживал, что сейчас врубят санкции, iOS заблокируют и сын останется ни с чем – без работы и без образования. Он не понимал, что это универсальный навык . Научившись реальному программированию, сын без работы уже не останется.
Я только успокоил, что переживать смысла нет. А что насчёт ВУЗа, не знаю. Да, лучше, наверное, отучиться, но насильно не заставишь, когда человек уже познал вкус заработка. К тому же есть явное увлечение своей деятельностью, способность к самообразованию, раз он сам всё освоил и развивается. Думаю, в таком случае продуктивнее реально начать работать, учиться где-то на специальных курсах, чтобы углубить свои навыки, и ВУЗ заканчивать заочно. Мне кажется, это будет более продуктивно, нежели идти на дневное обучение на 5,5 лет. Работать полноценно не получится. Я сам работал, знаю это. Да и по теме современной разработки он вряд ли что-то в ВУЗе узнает.
2️⃣ Второй пример – мой хороший знакомый. Пошёл куда-то учиться, с первого курса вылетел. Попал в армию. Пришёл из армии, начал самостоятельно осваивать 1С. Через некоторое время устроился программистом на небольшую зарплату. Так и раскрутился, стал нормальным 1С программистом. Неплохо зарабатывает этим на жизнь. Уже по ходу работы отучился где-то для корочки заочно да и всё. Возникает закономерный вопрос, нужен ли был ему ВУЗ, чтобы стать программистом 1С?
Я в итоге думаю так. Если нет каких-то особых событий в жизни, ребёнок планово учится в школе, ещё толком не знает, чем будет заниматься, но есть склонности к IT, то стоит идти, как и большинство, в ВУЗ. А если есть какие-то явные таланты, стремления, что человек в школе уже работает и зарабатывает, то можно отойти от этой линии и придумать какой-то альтернативный вариант. И та же история с приятелем. Если уж не получилось в своё время закончить ВУЗ, то можно не цепляться за очное обучение, а искать какие-то другие варианты. А корочку всегда можно заочно получить. Сейчас это вообще очень просто делается. Куча ВУЗов работают только на это – платишь деньги, платишь за написание диплома и спокойно получаешь корочку какого-то проходного заведения.
Что думаете по этому поводу? Особенно интересно мнение тех, у кого дети сейчас 15-16 лет и остро стоит подобный вопрос.
#дети
Навеяло тему вот это видео:
⇨ Университет пережиток прошлого? Нужен ли вуз DevOps да и любому айтишнику.
В целом, я согласен со всеми доводами автора. Если кратко, то он за образование в ВУЗе практически во всех ситуациях. Это будет только польза, даже если не доучиться. Но с другой стороны у меня есть много примеров, когда по большому счёту очное вузовское образование и не нужно было.
Собственно, отец ко мне и обратился с советом, как быть. Сын не хотел поступать в ВУЗ, а хотел продолжать учёбу по теме программирования и работать. А отец переживал, что сейчас врубят санкции, iOS заблокируют и сын останется ни с чем – без работы и без образования. Он не понимал, что это универсальный навык . Научившись реальному программированию, сын без работы уже не останется.
Я только успокоил, что переживать смысла нет. А что насчёт ВУЗа, не знаю. Да, лучше, наверное, отучиться, но насильно не заставишь, когда человек уже познал вкус заработка. К тому же есть явное увлечение своей деятельностью, способность к самообразованию, раз он сам всё освоил и развивается. Думаю, в таком случае продуктивнее реально начать работать, учиться где-то на специальных курсах, чтобы углубить свои навыки, и ВУЗ заканчивать заочно. Мне кажется, это будет более продуктивно, нежели идти на дневное обучение на 5,5 лет. Работать полноценно не получится. Я сам работал, знаю это. Да и по теме современной разработки он вряд ли что-то в ВУЗе узнает.
Я в итоге думаю так. Если нет каких-то особых событий в жизни, ребёнок планово учится в школе, ещё толком не знает, чем будет заниматься, но есть склонности к IT, то стоит идти, как и большинство, в ВУЗ. А если есть какие-то явные таланты, стремления, что человек в школе уже работает и зарабатывает, то можно отойти от этой линии и придумать какой-то альтернативный вариант. И та же история с приятелем. Если уж не получилось в своё время закончить ВУЗ, то можно не цепляться за очное обучение, а искать какие-то другие варианты. А корочку всегда можно заочно получить. Сейчас это вообще очень просто делается. Куча ВУЗов работают только на это – платишь деньги, платишь за написание диплома и спокойно получаешь корочку какого-то проходного заведения.
Что думаете по этому поводу? Особенно интересно мнение тех, у кого дети сейчас 15-16 лет и остро стоит подобный вопрос.
#дети
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Университет пережиток прошлого? Нужен ли вуз DevOps да и любому айтишнику.
Надежный хостинг FirstVDS! Переходи по ссылке и получай скидку 25% на первый месяц на любой тариф https://firstvds.ru/s/02p3j
Если ты задумался войти в АйТи или уже работаешь DevOps инженером, программистом, тестировщиком и т.д., у тебя явно возникает вопрос…
Если ты задумался войти в АйТи или уже работаешь DevOps инженером, программистом, тестировщиком и т.д., у тебя явно возникает вопрос…
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлые года: 2023 и 2024.
В праздники отдых и не занимался делами, но ТОП решил не пропускать. Не люблю, когда отлаженная система или порядок нарушаются, поэтому публикую. Да и постов много было интересных. Если кто не читал, рекомендую.
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://t.me/boost/srv_admin.
📌 Больше всего пересылок:
◽️Управление сохранёнными паролями в Windows (694)
◽️Подборка bash скриптов с канала (684)
◽️Как Windows определяет наличие интернета (574)
◽️Nginx UI для управления конфигурацией в браузере (517)
📌 Больше всего комментариев:
◽️Про высшее образование в IT (350)
◽️Выбор вентиляторов для системного блока (326)
◽️Вопросы на собеседованиях по базе (216)
◽️Ночные дежурства и переработки (135)
📌 Больше всего реакций:
◽️Как Windows определяет наличие интернета (385)
◽️Ночные дежурства и переработки (320)
◽️Управление сохранёнными паролями в Windows (297)
📌 Больше всего просмотров:
◽️Шутка на 1-е апреля про сисадминов (13448)
◽️Игра You're the OS! (10877)
◽️Управление сохранёнными паролями в Windows (10185)
#топ
В праздники отдых и не занимался делами, но ТОП решил не пропускать. Не люблю, когда отлаженная система или порядок нарушаются, поэтому публикую. Да и постов много было интересных. Если кто не читал, рекомендую.
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://t.me/boost/srv_admin.
📌 Больше всего пересылок:
◽️Управление сохранёнными паролями в Windows (694)
◽️Подборка bash скриптов с канала (684)
◽️Как Windows определяет наличие интернета (574)
◽️Nginx UI для управления конфигурацией в браузере (517)
📌 Больше всего комментариев:
◽️Про высшее образование в IT (350)
◽️Выбор вентиляторов для системного блока (326)
◽️Вопросы на собеседованиях по базе (216)
◽️Ночные дежурства и переработки (135)
📌 Больше всего реакций:
◽️Как Windows определяет наличие интернета (385)
◽️Ночные дежурства и переработки (320)
◽️Управление сохранёнными паролями в Windows (297)
📌 Больше всего просмотров:
◽️Шутка на 1-е апреля про сисадминов (13448)
◽️Игра You're the OS! (10877)
◽️Управление сохранёнными паролями в Windows (10185)
#топ
Telegram
ServerAdmin.ru
🎄🔝 Под конец года имеет смысл подвести некоторые итоги. В повседневной жизни я не привык это делать. Обычно только доходы/расходы анализирую. А вот в разрезе канала было интересно посмотреть итоги.
Я подготовил ТОП публикаций за прошедший год. Это было…
Я подготовил ТОП публикаций за прошедший год. Это было…
🐳❓ Хотите стать экспертом по Docker и микросервисам? Освойте ключевые навыки для разработки, упаковки и развертывания приложений с Docker-образами!
⏰ На открытом вебинаре 13 мая в 20:00 мск мы разберём, как эффективно использовать Docker для контейнеризации и автоматизации процессов развертывания микросервисов. Вы познакомитесь с принципами создания и оптимизации Docker-образов, а также с лучшими практиками DevOps и CI/CD.
Умение использовать Docker для автоматизации и управления микросервисами сделает вас более конкурентоспособным на рынке труда. Получите знания, которые востребованы в крупных компаниях.
👉 Регистрируйтесь на открытый урок и получите скидку на программу обучения «DevOps-практики и инструменты»: https://clck.ru/3Lr69Q
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏰ На открытом вебинаре 13 мая в 20:00 мск мы разберём, как эффективно использовать Docker для контейнеризации и автоматизации процессов развертывания микросервисов. Вы познакомитесь с принципами создания и оптимизации Docker-образов, а также с лучшими практиками DevOps и CI/CD.
Умение использовать Docker для автоматизации и управления микросервисами сделает вас более конкурентоспособным на рынке труда. Получите знания, которые востребованы в крупных компаниях.
👉 Регистрируйтесь на открытый урок и получите скидку на программу обучения «DevOps-практики и инструменты»: https://clck.ru/3Lr69Q
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
После прошлой истории с ddos захотелось проработать какое-то готовое универсальное решение, чтобы можно было его быстро применить, а не придумывать разные способы. В комментариях люди писали, что надо было установить fail2ban, какой-нибудь WAF или что-то в этом роде. Это всё слабо поможет, если идёт большая нагрузка. Fail2ban сразу мимо, забываем про него. А WAF или какой-то фильтрующий сервер надо настраивать заранее, а не когда у вас единственную машину ддосят.
Я взял наиболее простой и быстрый с точки зрения производительности вариант: ipset + iptables. Если ваш канал и сервер в целом вывозят нагрузку и вас не блокирует провайдер, указанная связка будет наиболее лёгкой и эффективной с точки зрения потребления ресурсов.
Сначала хотел что-то простое набросать, но потом всё расширял и расширял возможности. В итоге родился довольно большой bash скрипт с некоторыми проверками и логированием. Рассказываю, что он делает:
1️⃣ Проверяет установку ipset, создаёт списки.
2️⃣ Проверяет установку rsyslog, чтобы логировать заблокированные подключения. Это нужно на момент отладки и в обычное время, когда нет ддоса. Если начали ддосить, логирование надо отключить.
3️⃣ Создаёт конфигурацию rsyslog для хранения логов в отдельных файлах. Настраивает ротацию через logrotate.
4️⃣ Дальше идут переменные, касающиеся правил iptables: имя и ip адрес WAN интерфейса, белый список IP, с которых разрешено всё, разрешённые TCP и UDP порты, на которые мы принимаем соединения. Всё остальное блокируем.
5️⃣ Дальше идут наборы правил:
- очистка всех правил
- запрет всего, что не разрешено явно
- разрешаем установленные соединения
- разрешаем localhost и icmp
- разрешаем исходящие соединения сервера
- разрешаем все соединения от белого списка
- блокируем неопознанные и нулевые пакеты
- блокируем новые соединения без статуса NEW
- блокируем списки ipset, которые формируются ниже
- добавляем в список тех, кто открывает более 10-ти соединений с сервером в течении секунды, логируем таких товарищей
- разрешаем доступ к открытым портам, в данном примере это порты 80, 443 TCP и 443 UDP
- тех, кто обращается к другим портам, добавляем в список ipset
- сохраняю все правила в файл
Сразу скажу, что я не занимался плотной отладкой этого набора правил в реальной ситуации. Набросал правила на основе своего опыта и протестировал в ручном режиме. Под реальной нагрузкой и спамом запросов не проверял.
Для проверки работы надо установить на сервере iptables, ipset, rsyslog:
Скопировать и заполнить переменные в bash скрипте. Особое внимание уделить переменным WAN, WAN_IP, WLIST, WPORT_TCP, WPORT_UDP. На основе них будут сформированы правила iptables. Отдельного правила для SSH я не делал. Подразумевается, что подключаться куда-либо кроме открытых 80 и 443 портов можно только из списка WLIST. Туда можно добавлять IP адреса или подсети через запятую.
После выполнения скрипта, смотрим правила iptables:
Проверял работу так. Установил веб сервер. Попробовал с другой машины подключиться к серверу через telnet на любой отличный от HTTP порт:
Получил бан с занесением в список BANPORT. Смотреть этот список так:
Далее установил ab и попробовал спам запросов в 50 потоков к веб серверу:
Получил бан с занесением в список BANDDOS. Оба бана были отражены в лог файлах
⚡️На работающем сервере запускать такие скрипты не рекомендую, особенно если нет доступа к консоли. Сначала проверьте и отладьте на тестовой виртуалке. Убедитесь, что не отрубаете себе доступ. В целом, тут небольшой и относительно простой набор правил.
⇨ Забрать скрипт iptables.sh
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#iptables #ipset #ddos
Я взял наиболее простой и быстрый с точки зрения производительности вариант: ipset + iptables. Если ваш канал и сервер в целом вывозят нагрузку и вас не блокирует провайдер, указанная связка будет наиболее лёгкой и эффективной с точки зрения потребления ресурсов.
Сначала хотел что-то простое набросать, но потом всё расширял и расширял возможности. В итоге родился довольно большой bash скрипт с некоторыми проверками и логированием. Рассказываю, что он делает:
- очистка всех правил
- запрет всего, что не разрешено явно
- разрешаем установленные соединения
- разрешаем localhost и icmp
- разрешаем исходящие соединения сервера
- разрешаем все соединения от белого списка
- блокируем неопознанные и нулевые пакеты
- блокируем новые соединения без статуса NEW
- блокируем списки ipset, которые формируются ниже
- добавляем в список тех, кто открывает более 10-ти соединений с сервером в течении секунды, логируем таких товарищей
- разрешаем доступ к открытым портам, в данном примере это порты 80, 443 TCP и 443 UDP
- тех, кто обращается к другим портам, добавляем в список ipset
- сохраняю все правила в файл
Сразу скажу, что я не занимался плотной отладкой этого набора правил в реальной ситуации. Набросал правила на основе своего опыта и протестировал в ручном режиме. Под реальной нагрузкой и спамом запросов не проверял.
Для проверки работы надо установить на сервере iptables, ipset, rsyslog:
# apt install iptables ipset rsyslog
Скопировать и заполнить переменные в bash скрипте. Особое внимание уделить переменным WAN, WAN_IP, WLIST, WPORT_TCP, WPORT_UDP. На основе них будут сформированы правила iptables. Отдельного правила для SSH я не делал. Подразумевается, что подключаться куда-либо кроме открытых 80 и 443 портов можно только из списка WLIST. Туда можно добавлять IP адреса или подсети через запятую.
После выполнения скрипта, смотрим правила iptables:
# iptables -L -v -n
Проверял работу так. Установил веб сервер. Попробовал с другой машины подключиться к серверу через telnet на любой отличный от HTTP порт:
# telnet 85.143.173.182 23
Получил бан с занесением в список BANPORT. Смотреть этот список так:
# ipset -L BANPORT
Далее установил ab и попробовал спам запросов в 50 потоков к веб серверу:
# ab -c 50 -n 30000 "http://85.143.173.182/"
Получил бан с занесением в список BANDDOS. Оба бана были отражены в лог файлах
ipset_portscan.log
и ipset_ddos.log
. При этом если ничего из описанного выше не делать, а просто ходить на веб сайт, доступ открыт, всё работает нормально.⚡️На работающем сервере запускать такие скрипты не рекомендую, особенно если нет доступа к консоли. Сначала проверьте и отладьте на тестовой виртуалке. Убедитесь, что не отрубаете себе доступ. В целом, тут небольшой и относительно простой набор правил.
⇨ Забрать скрипт iptables.sh
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#iptables #ipset #ddos
Please open Telegram to view this post
VIEW IN TELEGRAM
Почтовый сервер postfix позволяет очень гибко управлять транспортом почты во всех направлениях. Меня не раз спрашивали, можно ли сделать так, чтобы на какой-то домен почта не отправлялась, но при этом клиент во время отправки не получал никакой ошибки. То есть он как-будто всё отправил, но письмо реально не ушло.
Я так сходу не придумал как это сделать стандартными средствами postfix без костылей. У него есть настройка smtpd_recipient_restrictions, где можно управлять разрешениями для получателей. Там можно явно указать, что для конкретного домена отправка запрещена. Но клиент при попытке отправить туда письмо, получит обратное письмо с ошибкой на тему того, что это запрещено.
Это не всегда удобно. Можно подумать, что это нужно для того, чтобы ввести в заблуждение пользователя почты, чтобы он не знал, что письмо реально не доставлено. Но на самом деле нет. Это чаще всего нужно не для этого. Например, может быть софт, который делает какие-то отправки по определённому набору доменов. И отправлять ему можно только туда. Если в его список рассылки по какой-то причине попадут другие домены, а вы настроите smtpd_recipient_restrictions, то его завалит обратными письмами с ошибками.
В общем, ситуации бывают разные. Расскажу, как всё это можно настроить встроенными инструментами postfix. Он будет отправлять письма только разрешённым доменам или наоборот, запретит отправку на какие-то домены, но при этом отправляющий будет думать, что всё ОК, обратного письма с ошибкой он не получит. При этом в логе postfix будет явно видно, что письмо не было отправлено.
Настраиваем параметр transport_maps, добавляя в
Создаём файл
Создаём индексированный файл и перечитываем конфигурацию:
Теперь при отправке письма на домен example.com клиент не получит никакой ошибки. Он будет считать, что письмо нормально отправлено. При этом в логе postfix это отразится вот так:
Отправки реально не было, так как
Для example.com обычная доставка, для всех остальных - discard. Поясню, как это работает. Данный параметр я знаю давно и активно использую. Пример файла
Первый домен websrv.site.ru используется как локальный. Вся почта для этого домена отправляется только локально в рамках данного сервера. Второй домен backupmail.ru используется для бэкапа всей корреспонденции. Ящики из этого домена настроены как сборщики копий через bcc_maps всей входящей и исходящей почты. Третья строчка указывает отправлять всю остальную почту через smtp сервер Яндекса.
Подробно я эту тему рассматривал в отдельной статье:
⇨ Postfix - выбор сервера для отправки в зависимости от получателя
Там как раз рассматривается параметр transport_maps, но не в контексте задачи скрытого запрета отправки писем. Для запрета мы просто указали соответствующий транспорт - discard, вместо relay. И письма в итоге не отправляются.
Если у кого-то есть вопросы по настройке postfix, можете задавать в комментариях. Попробую подсказать. Я много всего обычного и не очень настраивал на postfix.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#postfix
Я так сходу не придумал как это сделать стандартными средствами postfix без костылей. У него есть настройка smtpd_recipient_restrictions, где можно управлять разрешениями для получателей. Там можно явно указать, что для конкретного домена отправка запрещена. Но клиент при попытке отправить туда письмо, получит обратное письмо с ошибкой на тему того, что это запрещено.
Это не всегда удобно. Можно подумать, что это нужно для того, чтобы ввести в заблуждение пользователя почты, чтобы он не знал, что письмо реально не доставлено. Но на самом деле нет. Это чаще всего нужно не для этого. Например, может быть софт, который делает какие-то отправки по определённому набору доменов. И отправлять ему можно только туда. Если в его список рассылки по какой-то причине попадут другие домены, а вы настроите smtpd_recipient_restrictions, то его завалит обратными письмами с ошибками.
В общем, ситуации бывают разные. Расскажу, как всё это можно настроить встроенными инструментами postfix. Он будет отправлять письма только разрешённым доменам или наоборот, запретит отправку на какие-то домены, но при этом отправляющий будет думать, что всё ОК, обратного письма с ошибкой он не получит. При этом в логе postfix будет явно видно, что письмо не было отправлено.
Настраиваем параметр transport_maps, добавляя в
/etc/postfix/main.cf
:transport_maps = hash:/etc/postfix/transport_map
Создаём файл
/etc/postfix/transport_map
следующего содержания:example.com discard: Not allowed destination
Создаём индексированный файл и перечитываем конфигурацию:
# postmap /etc/postfix/transport_map
# postfix reload
Теперь при отправке письма на домен example.com клиент не получит никакой ошибки. Он будет считать, что письмо нормально отправлено. При этом в логе postfix это отразится вот так:
2025-05-06T11:41:29.689884+03:00 mailsrv postfix/discard[3974535]: 887AA11B319: to=<user@example.com>, relay=none, delay=0.18, delays=0.17/0.01/0/0, dsn=2.0.0, status=sent (Not allowed destination)
Отправки реально не было, так как
relay=none
. Можно сделать и обратную ситуацию. Отменить отправку на все домены, кроме example.com. Тогда файл transport_map
будет выглядеть так:example.com :
* discard: Not allowed destination
Для example.com обычная доставка, для всех остальных - discard. Поясню, как это работает. Данный параметр я знаю давно и активно использую. Пример файла
transport_map
из моей практики:websrv.site.ru local
backupmail.ru relay:[backupmail.ru]:25
* relay:[smtp.yandex.ru]:465
Первый домен websrv.site.ru используется как локальный. Вся почта для этого домена отправляется только локально в рамках данного сервера. Второй домен backupmail.ru используется для бэкапа всей корреспонденции. Ящики из этого домена настроены как сборщики копий через bcc_maps всей входящей и исходящей почты. Третья строчка указывает отправлять всю остальную почту через smtp сервер Яндекса.
Подробно я эту тему рассматривал в отдельной статье:
⇨ Postfix - выбор сервера для отправки в зависимости от получателя
Там как раз рассматривается параметр transport_maps, но не в контексте задачи скрытого запрета отправки писем. Для запрета мы просто указали соответствующий транспорт - discard, вместо relay. И письма в итоге не отправляются.
Если у кого-то есть вопросы по настройке postfix, можете задавать в комментариях. Попробую подсказать. Я много всего обычного и не очень настраивал на postfix.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#postfix
Server Admin
Postfix - выбор сервера для отправки в зависимости от получателя |...
user1@site1.ru user1 user2@site2.ru user2 Если у вас использует разные ящики для отправки, то можете настроить правило для всего домена сразу: *@site1.ru user1 *@site2.ru user2 Дальше вам нужно...
Открытый практикум Linux by Rebrain: LVM — снапшоты, отказоусточивость, кэширование
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
14 мая (среда) в 20:00 по МСК
Программа практикума:
▪️ Что такое снапшот?
▫️ Как реализовать отказоустойчивость LVM?
▪️ Кэш в LVM
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 10+ лет опыта работы с ОС Linux и 8+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFJPhhct
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
14 мая (среда) в 20:00 по МСК
Программа практикума:
▪️ Что такое снапшот?
▫️ Как реализовать отказоустойчивость LVM?
▪️ Кэш в LVM
Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в компании VK, входит в топ 3 лучших преподавателей образовательных порталов. 10+ лет опыта работы с ОС Linux и 8+ лет опыта преподавания.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFJPhhct
⇨ Файловый сервер Linux. Корзина (Recycle) №4
Продолжение цикла видео про настройку файлового сервера Linux. Ранее я уже публиковал видео из этого цикла, можно посмотреть их в канале автора. Хороший разбор функциональности корзины Samba с примерами и разбором конфигурации. Хорошая серия получилось, её бы в текстовый формат перевести.
⇨ Angie VS HAProxy: кто быстрее?
Сравнение производительности двух указанных продуктов в режиме прокси. Как и ожидалось, однозначный вывод и сравнение сделать трудно, так как всё сильно разнится в зависимости от шифрования, размера передаваемых данных и т.д. Каких-то явных преимуществ одного над другим нет.
⇨ FreeIPA - Powerful User and Device Control through Identity, Permissions, and Auditing
Очень подробный обзор FreeIPA фактически с нуля для новичков. Автор взял голую VPS и всё там настроил от IP адреса и до Firewall и доступа по VPN внешним клиентом для управления службой каталогов.
⇨ Как измерить скорость локальной сети? Локальный speedtest
Автор показал пример использования локальных iperf, openspeedtest и librespeed для тестирования скорости в локальной сети.
⇨ How To Install Zabbix 7.4 With PostgreSQL and TimescaleDB
Свежее подробное руководство по настройке указанного стека. Если у вас нет реальной нужды в TimescaleDB, то лучше не используйте её. Я сначала для экономии места везде стал втыкать, но это осложняет эксплуатацию. С обновлением возникают нюансы. Если у вас база небольшая и по нагрузке нормально всё вытягиваете, не включайте расширение TimescaleDB.
⇨ Бюджетный wi-fi 7! миф или реальность? #xiaomi be3600
Интересное видео на тему того, как автор решал вопрос полного покрытия Wifi в арендованной квартире, где нельзя тянуть кабели. Плюс обзор xiaomi be3600, который стоит сейчас 3-4 т.р.
⇨ Jellyfin - медиа сервер. Домашний кинотеатр. Удобный, простой и современный. Обзор и настройка.
Обзор медиасервера для дома Jellyfin. Я лично дома уже лет 15 использую встроенный от Synology. Меня устраивает для обычного просмотра фильмов на телевизоре по сети.
⇨ Протокол TCP: установка соединения | Компьютерные сети 2025 - 30
⇨ Протокол TCP - скользящее окно | Компьютерные сети 2025 - 29
Очередные обновлённые уроки хорошего бесплатного курса по сетям от Созыкина Андрея.
⇨ ТЕСТИРУЕМ последние Нейросети для программирования! Апрель 2025
Очередной ролик про тестирование нейронок в написании реального ПО. Мне уже не очень интересно было, так как смотрел на такую же тему предыдущие видео. Если вы их не видели, возможно вам будет интересно. Сейчас можно писать простые прикладные программы вообще не разбираясь в программировании. Только силами ИИ. Многие уже этим пользуются, читал такие истории.
⇨ What software runs in my HomeLab in 2025?
В прошлой подборке был обзор железа этого блогера, теперь софт в его домашней лаборатории. Интересное и информативное видео. В принципе, там всё плюс-минус как у всех: Proxmox, Docker, Kubernetes (k3s), Sophos в качестве файрвола, Unraid для хранения (грузит его с usb), Traefik, Prometheus, Gitlab и т.д.
⇨ What's on my Home Server 2025
Ещё один обзор домашнего софта популярного блогера. Тут очень хорошо всё оформлено: название продукта и обзор интерфейса. По 2-3 минуты на каждый. Тут тоже привычный набор: Homepage, Immich, Jellyfin, Nextcloud, Uptime Kuma, Vaultwarden и т.д. Из любопытного, автор рассказал, что для своего окружения он отказался от Ansible после перехода на NixOS, где состав и настройка системы описывается конфигурационным файлом. По этой же причине он не использует контейнеры, а вместо них модули NixOS. Вообще, интересный опыт. Я особо не погружался в NixOS. Надо будет посмотреть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Файловый сервер Linux. Корзина (Recycle) №4
Плейлист по samba: https://www.youtube.com/playlist?list=PL148XRxlt8ShhdC1--UM-nWASRFS3m3qk
Содержимое smb.conf
[global]
workgroup = WORKGROUP
map to guest = Bad User
guest ok = no
cups options = raw
security = user
load printers =…
Содержимое smb.conf
[global]
workgroup = WORKGROUP
map to guest = Bad User
guest ok = no
cups options = raw
security = user
load printers =…
Настраивал на днях арендованный сервер без прямого доступа к консоли. Ещё и конфигурация была нестандартная, так что техподдержка вручную установила туда ОС и отдала мне с доступом по SSH. Нужно было настроить дополнительные диски и добавить их в fstab. Несмотря на то, что в современных ОС реально монтирует диски systemd, я по старинке предпочитаю добавлять новые точки монтирования в fstab.
В этом деле самое главное – не ошибиться и сразу после изменения файла проверить, что там всё в порядке. Иначе после перезагрузки можно получить проблемы. Без прямого доступа к консоли это может быть фатально.
Я обычно добавляю новые диски в систему следующим образом. Смотрю список дисков через fstab:
Сразу видно диски без разметки. Добавлять разделы предпочитаю в cfdisk, а не напрямую в консоли через fstab. В TUI как-то нагляднее, меньше шансов ошибиться.
Создаю раздел, выбираю тип раздела, сохраняю. После этого можно создавать файловую систему.
Монтирую в систему:
Теперь нам надо добавить эту точку монтирования в fstab. По имени диска категорически нельзя добавлять. Диски могут менять свои имена. Причём это стало актуально в какой-то момент с очередным обновлением железа. Когда я только начинал изучать Linux, спокойно монтировал по именам дисков и проблем не было. В какой-то момент они начались. И сейчас я сам часто наблюдаю, что диски, как и сетевые интерфейсы, могут изменить свои имена после перезагрузки. Если используете LVM, то можно добавлять точки монтирования по имени LV.
Смотрим UUID раздела:
Добавляем его в fstab отдельной строкой:
А теперь проверяем, всё ли мы правильно добавили.
Findmnt проверил все монтирования. В моём случае я получил предупреждение на /media/cdrom0.
Судя по всему систему ставили с какого-то диска, локального или сетевого, не знаю, но он остался в fstab. Делать ему там больше нечего, можно закомментировать строку с ним.
Более кратко можно получить информацию только об ошибках:
☝️Отдельно обращаю внимание на такой момент. До перехода управления к systemd было критически важно оставлять в fstab в конце файла переход на новую строку. Сейчас даже если этого не сделать, то проблем не будет. Всё нормально загрузится. Насколько я понимаю, это тянется из далёкого прошлого и POSIX-совместимой практики, когда файлы конфигурации заканчивались переходом на новую строку. Я лично до сих пор на всякий случай везде этой практики придерживаюсь.
Ещё один способ проверить корректность записей в fstab – использовать mount. Можно не монтировать вручную новый диск, а сразу добавить его в fstab. Потом запустить:
Утилита смонтирует все записи из файла, где не указан параметр noauto. Если вы всё верно добавили, то ошибок не увидите и получите смонтированным новый диск.
Расскажу, что будет, если, к примеру, ошибётесь с диском в fstab или он просто перестанет быть видим в системе. Я лично с этим не раз сталкивался. А однажды это привело к дальней дороге. Добавили наживую новый диск в сервер, я его добавил с ошибкой в fstab и не проверил. Сервер аварийно перезагрузился через полгода из-за обесточивания серверной. Возникли какие-то проблемы с доступом туда, ещё и сервер по неизвестной на тот момент мне причине не стартанул. Приехал туда ножками и увидел примерно то же самое, что вы видите на втором скрине.
Сразу понял, в чём дело, зашёл в режим обслуживания и поправил fstab. Так что внимательно относитесь к его настройке. Этой проблемы можно избежать, если использовать nofail в параметрах монтирования. Но с ним могут быть нюансы. Иногда лучше не загрузиться, если с разделом проблемы.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
В этом деле самое главное – не ошибиться и сразу после изменения файла проверить, что там всё в порядке. Иначе после перезагрузки можно получить проблемы. Без прямого доступа к консоли это может быть фатально.
Я обычно добавляю новые диски в систему следующим образом. Смотрю список дисков через fstab:
# fdisk -l | grep /dev/
Сразу видно диски без разметки. Добавлять разделы предпочитаю в cfdisk, а не напрямую в консоли через fstab. В TUI как-то нагляднее, меньше шансов ошибиться.
# cfdisk /dev/sdb
Создаю раздел, выбираю тип раздела, сохраняю. После этого можно создавать файловую систему.
# mkfs -t ext4 /dev/sdb1
Монтирую в систему:
# mkdir /mnt/disk1
# mount /dev/sdb1 /mnt/disk1
Теперь нам надо добавить эту точку монтирования в fstab. По имени диска категорически нельзя добавлять. Диски могут менять свои имена. Причём это стало актуально в какой-то момент с очередным обновлением железа. Когда я только начинал изучать Linux, спокойно монтировал по именам дисков и проблем не было. В какой-то момент они начались. И сейчас я сам часто наблюдаю, что диски, как и сетевые интерфейсы, могут изменить свои имена после перезагрузки. Если используете LVM, то можно добавлять точки монтирования по имени LV.
Смотрим UUID раздела:
# blkid | grep /dev/sdb1
Добавляем его в fstab отдельной строкой:
UUID=eaf5c153-08b7-4ea8-8037-e6baad4cac0d /mnt/disk1 ext4 errors=remount-ro 1 0
А теперь проверяем, всё ли мы правильно добавили.
# findmnt --verify --verbose
Findmnt проверил все монтирования. В моём случае я получил предупреждение на /media/cdrom0.
[W] unreachable source: /dev/sr0: No such file or directory
Судя по всему систему ставили с какого-то диска, локального или сетевого, не знаю, но он остался в fstab. Делать ему там больше нечего, можно закомментировать строку с ним.
Более кратко можно получить информацию только об ошибках:
# findmnt -x
☝️Отдельно обращаю внимание на такой момент. До перехода управления к systemd было критически важно оставлять в fstab в конце файла переход на новую строку. Сейчас даже если этого не сделать, то проблем не будет. Всё нормально загрузится. Насколько я понимаю, это тянется из далёкого прошлого и POSIX-совместимой практики, когда файлы конфигурации заканчивались переходом на новую строку. Я лично до сих пор на всякий случай везде этой практики придерживаюсь.
Ещё один способ проверить корректность записей в fstab – использовать mount. Можно не монтировать вручную новый диск, а сразу добавить его в fstab. Потом запустить:
# mount -a -v
Утилита смонтирует все записи из файла, где не указан параметр noauto. Если вы всё верно добавили, то ошибок не увидите и получите смонтированным новый диск.
Расскажу, что будет, если, к примеру, ошибётесь с диском в fstab или он просто перестанет быть видим в системе. Я лично с этим не раз сталкивался. А однажды это привело к дальней дороге. Добавили наживую новый диск в сервер, я его добавил с ошибкой в fstab и не проверил. Сервер аварийно перезагрузился через полгода из-за обесточивания серверной. Возникли какие-то проблемы с доступом туда, ещё и сервер по неизвестной на тот момент мне причине не стартанул. Приехал туда ножками и увидел примерно то же самое, что вы видите на втором скрине.
Сразу понял, в чём дело, зашёл в режим обслуживания и поправил fstab. Так что внимательно относитесь к его настройке. Этой проблемы можно избежать, если использовать nofail в параметрах монтирования. Но с ним могут быть нюансы. Иногда лучше не загрузиться, если с разделом проблемы.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux