Обновить
256K+

Настройка Linux *

Вечный кайф

115,66
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Семь привычек Linux-инженера, которые спасают прод

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели97K

Всем привет! Меня зовут Анна Васильева, я технический менеджер в K2 Cloud и люблю запускать утилиты с максимально возможным уровнем verbose.

Есть фраза, после которой расследование сбоя обычно становится интереснее: «Я ничего не менял». Через несколько часов выясняется, что изменения всё-таки были. Инженер распаковал архив, добавил сетевой интерфейс, обновил библиотеку или перенёс виртуальную машину на другой хост. Действие казалось безобидным, а его последствия проявились в неожиданном месте.

На митапе «Инженеры перебрали / кейсы по Linux» мы взяли семь реальных случаев и разобрали их вместе с экспертами:

Читать далее

Новости

Безопасное извлечение флешки стало ритуалом. Но только в Windows

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели36K

Началось все с того, что коллега увидела, как я выдергиваю флешку из ноутбука сразу после копирования, и посмотрела на меня так, будто я при ней вытащила вилку из розетки за провод. Следующие двадцать минут мы спорили про значок в трее, и к концу спора выяснилось, что ни одна из нас толком не знает, что происходит, когда на него нажимаешь. Она нажимает, потому что так учили еще в школьном компьютерном классе, я не нажимаю, потому что у меня за все эти годы ни разу ничего не сломалось, и аргументы у нас обеих, честно говоря, были уровня «а у моей бабушки».

Читать далее

Точечное внедрение Linux на производстве: опыт одного начальника склада

Время на прочтение12 мин
Охват и читатели101K

Представьте картину: вы руководитель склада на пищевом производстве, вам нужно распечатать и раздать сотрудникам задания, а рабочий МФУ в очередной раз уходит в «циклическую кому». Добавьте в уравнение ещё одну переменную: в компании попросту нет не то что ИТ‑отдела — эникея, которому можно было бы поручить дебаг. И эта вакханалия происходит изо дня в день у всего нашего офиса.

Читать далее

tmux у сисадмина — разбивает терминал, реанимирует сессии, уносит хаос

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели16K

Каждый, кто работает в терминале, держит открытыми сразу несколько вкладок: в первой смотрит логи, во второй следит за списком запущенных процессов через htop, в третьей работает с Git, в четвертой запускает миграции базы данных. При переключении между вкладками легко запутаться, закрыть нужную, а при обрыве связи — потерять запущенные процессы и сессии. 

Привет! Я Саломея, продуктовый технический писатель в Selectel. В этой статье поделюсь своим опытом, как с помощью tmux упорядочить этот хаос и сделать работу удобнее. Разделим окно терминала на панели, запустим сессию, которая не прервется при закрытии окна, автоматизируем настройку рабочего пространства. Посмотрим, как выполнять команду сразу на нескольких серверах.

Читать далее →

Создаём простейший киоск при помощи Yocto

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели16K

Я уже рассказывал, как можно собрать минимальный Linux под различные архитектуры. Также я описывал свой эмулятор известной игры «Ну, Погоди!». В этой статье я хочу рассказать, как создать дистрибутив Linux с моим эмулятором, который будет работать в режиме киоска.

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

Читать далее

Свой видеохостинг с P2P и Fediverse: PeerTube

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели93K

Всем привет! Сегодня я хочу вам рассказать о Peertube — некоммерческой децентрализованной видеоплатформе с открытым исходным кодом. В нем есть возможность загрузки контента, комментирования, поиска, а также изменения видео, когда оно уже опубликовано.

Peertube основан на технологии P2P (peer-to-peer) для обмена видео по принципу всех известных торрентов. Исторически PeerTube использовал WebTorrent, но уже несколько лет (начиная с версии 6.0) проект полностью перешел на протокол HLS в связке с WebRTC.

Что лучше — централизация или децентрализация? Что такое Fediverse? И наконец — как создать свой инстанс-сайт для сохранения видео на случай, например, блокировки ютуба? Давайте-ка погрузимся в теорию и практику!

В конце концов мы опубликуем свой децентрализованный видеохостинг!

Читать далее

В nginx один алгоритм балансировки

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели17K

server a.internal weight=10 max_fails=2; — десять к одному. Ночью бэкенд на пару секунд отвалился, к утру давно жив и из ротации не выведен. А первые полсотни запросов рабочего дня распределяются не 10:1, и среди них есть места, где два запроса подряд уходят на сосед с весом единица.

Ни один лог об этом не скажет, в документации по upstream такого объяснения нет. Есть — в двух строках ngx_http_upstream_round_robin.c.

Разбираем по тегу release-1.31.3, со ссылками файл:строка: smooth weighted round-robin и его восемь копий в исходниках; effective_weight, которого нет в документации, и то, как max_fails втихую им управляет; почему least_conn сравнивает не число соединений; почему ip_hash не работает на unix-сокетах. Плюс sticky и least_time, приехавшие в open source несколько месяцев назад.

Читать далее

Как я год проработал на Arch Linux, сдался и вернулся на скучную Ubuntu для реальной работы

Время на прочтение6 мин
Охват и читатели35K

Весь мой путь в Linux начался в студенческие годы, в момент, когда я получил предложение о работе от своего преподавателя в универе. Оказалось, что помимо преподавательской работы он также трудился в IT-компании, которая на тот момент искала интернов.

Собеседование заняло 10 минут, без единого вопроса про системы хранения или задачи с кодом. Мы просто поздоровались, технический директор Павел выдал мне доступы и объяснил суть: за полгода мне нужно пройти три модуля, по два месяца на каждый, удаленно с возможностью работать из офиса — путь от «понять, как устроено ядро» до «написать драйвер под реальное железо и собрать прошивку под FPGA».

Я дважды стирал себе диск, ради стажировки купил трехкилограммовый ноутбук за $50, потом воевал с Arch ради одной проприетарной программы — и в итоге вернулся туда же, откуда начинал, на Ubuntu. Это не история моего поражения (как некоторым хотелось бы), а притча об осознании. Осознании чего?

Читать далее

Как превратить домашний сервер в игровой стриминг на любое устройство в доме

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели14K

Мой игровой ПК с 5800×3D переехал в шкаф в прихожей и стал домашним сервером, а играю я теперь на телевизоре, Steam Deck и ноутбуке — стримом с него же. В этой статье расскажу, почему мне не подошла привычная связка Sunshine + Moonlight и как вместо неё поднять Wolf из проекта Games on Whales, о котором на русском, кажется, ещё не писали: свой виртуальный дисплей под каждого клиента, несколько сессий одновременно и никакого Steam на хосте. Отдельно — про главные грабли: с Wolf не работает официальный проброс NVIDIA‑драйвера, и после каждого обновления стриминг молча умирал, пока я не научил сервер чинить себя сам.

Читать далее

Из ядра Linux выпилили strncpy: шесть лет, 362 коммита, одна функция

Время на прочтение2 мин
Охват и читатели35K

19 июня Линус Торвальдс влил merge, который убрал из ядра Linux функцию strncpy — шесть лет работы, 362 коммита, семьдесят человек ради одной функции стандартной библиотеки C. Разбираю, почему «просто заменить небезопасную функцию» в C совсем не просто: strncpy только выглядит как «безопасный strcpy» из-за параметра n, а на деле это даже не строковая функция, а реликт fixed-width полей из AT&T Unix 1979 года. Главное в истории не сам выпил, а его цена: заменить нельзя автозаменой, потому что каждый из 362 вызовов требует понять намерение — нужна C-строка, padding или бинарное поле. Урок выходит за пределы ядра: в любой C/C++ базе на проде strncpy — это не баг, а код, который надо перечитать.

Читать далее

Создаем автономный анализатор логов на локальных ИИ-моделях

Время на прочтение10 мин
Охват и читатели13K

У моего клиента есть пара железных серверов, которые используются для хранения и раздачи статических файлов. Все бы ничего, но любое оборудование требует внимания и регулярного мониторинга. Со временем диски, модули памяти и другие компоненты могут выходить из строя. Причем умирают они не сразу, сначала молча сыплются ошибки в логи, а потом уже поздно что-то предпринимать: даунтайм, kernel panic, fatal error, ретроспектива и панические атаки. Поэтому важно своевременно отслеживать состояние инфраструктуры и реагировать на предупреждения до того, как они перерастут в серьезные инциденты.

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

Выражение «искусственный интеллект всех заменит» заиграло новыми красками. Нет, от естественного интеллекта я не отказываюсь, но конкретно анализом «здоровья» этих железных серверов теперь занимается локальная ИИшница. Сейчас покажу, что удалось запилить, как я прикрутил локальную модель и написал нишевого агента под нужды клиента, чисто для анализа логов с железных серверов.

Читать далее

Всё, что вы настроили в Linux, можно было не настраивать

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели51K

Я использую Linux 15 лет. Ну, то есть как использую: первые года три я его настраивал, а не использовал. Это разные вещи, и мне понадобилось позорно много времени чтобы это понять.

Сейчас у меня Fedora. Из коробки. С GNOME. Почти без кастомизации. Я набираю в ней код, сижу в браузере, иногда монтирую видео для внутренних демок. Всё работает.

Пятнадцать лет назад я бы от такого описания плевался. Как это «из коробки»? А где i3? Где polybar? Где 400 строк .vimrc? Где кастомный скрипт на баше который при подключении второго монитора переключает раскладку DPI и температуру цвета?

Ну вот, нету. И ничего не сломалось.

Читать далее

Linux: Процессы

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели26K

Четвёртая часть серии о Linux для DevOps и DevSecOps — разбираем процессы глубоко: жизненный цикл, состояния, /proc, сигналы, планировщик, ограничения, отладка и диагностика в production.

Читать

Ближайшие события

Делаем ностальгический фильмоскоп на Raspberry Pi Zero 2 W

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели20K

Один из ярких воспоминаний детства — просмотр семьёй диафильмов. Выключался свет, и на самодельном экране из простыни мы смотрели сказки. Детское воображение дорисовывало детали, и картинки оживали.

Сейчас в эпоху интернета, мультимедиа и ИИ вроде бы как такой необходимости нет, но слишком сильное чувство ностальгии. Поэтому решил получить ностальгические воспоминания с использованием современных технологий, а заодно и попрактиковаться в использовании энкодеров, разработке программ на Си и настройке Linux на Raspberry Pi.

Читать далее

Root в контейнере — это root на хосте? Разбираю важные особенности прав доступов в контейнерах Docker/Podman

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели18K

Если назначить файлу владельца root на хосте — будет ли это тот же самый root внутри контейнера?

Если на хосте существует пользователь gtosss — можно ли переключиться на него внутри контейнера и получить доступ к файлу?

Если создать пользователя gtosss внутри контейнера и выдать ему права на файл — сможет ли хост обратиться к этому файлу под таким же пользователем?

Большинство разработчиков знают, что контейнеры изолируют процессы. Но мало кто задумывается о том, что происходит с правами, когда например директория с хоста монтируется внутрь контейнера через volume (bind mount).

Разобрал три конкретных сценария на Ubuntu с Docker и Fedora с Podman: как UID/GID влияют на доступ к файлам, почему root в контейнере может быть root на хосте и что с этим делает user namespace. Эксперименты, cli и доступные объяснения.

Читать далее

Re:HomeProxy для OpenWRT: оболочка для sing-box и hiddify-core, AmneziaWG, подписок и обхода DPI (ByeDPI, Zapret2)

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели48K

Это гайд по настройке VPN на роутере с OpenWRT через веб-интерфейс Re:HomeProxy. Оно поддерживает два ядра на выбор — hiddify-core или sing-box-extended — и самый широкий набор протоколов на сегодняшний день: NaiveProxy, Mieru, ShadowTLS, AmneziaWG, Hysteria2, VLESS (в т.ч. XHTTP), Trojan, TUIC, Shadowsocks и другие, а также импорт узлов по подпискам (subscription). Также возможна установка компонентов в один клик прямо из интерфейса

Помимо обычного прокси, в приложение встроены два движка обхода DPI без VPN — ByeDPI и Zapret 2 с предустановленными стратегиями и механизмом их подбора. Плюс — готовые правила маршрутизации для России в один клик.

Статья содержит инструкцию по установке и настройке VPN с раздельным туннелированием за несколько минут, а также подробное описание режимов и меню настроек

Читать далее

SELinux — Быстрый онбординг: типы, атрибуты, домены, политики и утилиты на практике

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели17K

В статье пойдет речь о SELinux. Главная моя задача — провести быстрый онбординг о том, как работать с политиками доступов. Я хочу показать, что это вовсе не так сложно, как может показаться на первый взгляд. Буквально 15 минут ознакомления с базовыми понятиями дает 80% понимания как работать с SELinux более уверенно.

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

Читать далее

Btrfs и btrbk: лёгкий и быстрый инкрементальный бэкап сервера и домашнего ПК

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели19K

Старая сисадминская пословица гласит: люди делятся на две категории — на тех, кто уже делает резервные копии, и тех, кто только будет их делать.

Связка Btrfs + btrbk — это революция в мире бакапа. Ещё никогда не было так просто и быстро создавать дифференциальные резервные копии. Никаких лицензий и подписок — всё полностью бесплатно и встроено в ядро Linux.

Читать далее

Linux: Права доступа

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели18K

Третья часть серии о Linux для DevOps и DevSecOps – разбираем права доступа, модель UGO, биты rwx, числовое и символьное представление, chmod и chown.

Читать

Права в Linux: chown/chmod, SELinux context, символьная/восьмеричная нотация, DAC/MAC/RBAC/ABAC

Время на прочтение16 мин
Охват и читатели23K

Если вы сейчас вкатываетесь в Linux на фоне хайпа вокруг DevOps и инфобеза — статья для вас.

Собрал в одном месте всё, что нужно знать о правах в Linux, простым и понятным языком: символьная и восьмеричная нотация, SUID/SGID/Sticky bit, SELinux-контекст, DAC, MAC, RBAC, ABAC, команды ls/stat/chmod/chown/find — с примерами и схемами, к которым легко вернуться.

Читать далее
1
23 ...