Обновить
350.9

Linux *

Пишем под *nix

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

Как перенести Ghost CMS на vps с панелью FASTPANEL

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

Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей "Установка Ghost на сервер под управлением ispmanager", я подумал, что это будет просто. На деле же оказалось несколько сложнее.

Конечно можно установить в docker контейнер и не париться с панелью. Но я решил остановиться на варианте без контейнеризации. В этой статье у меня был 1 чистый сервер на котором был установлен ghost cms без докера. Второй сервер уже в работе с установленной FASTPANEL.

Начнем пожалуй с бэкапов.

Читать далее

Новости

Запуск программ, требующих getrandom() и getentropy(), на ядрах Linux старше 3.17

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

Всем привет! Потребовалось на старом ядре linux запустить несколько docker-контейнеров, требующих getrandom и/или getentropy. В ядрах Linux старше 3.17 нет этих системных вызовов. Решение применимо не только к docker, но и к запуску программ на старых ядрах вообще.

Читать далее

Перенос кластера kubernetes на другие ip адреса

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

Предположим, вам необходимо мигрировать ваш кластер k8s в другой vlan или просто сменить ip адреса. Насколько это необходимо каждый решает сам. Будем считать, что перенос нагрузки ямлами на другой кластер затруднён или у кластера специфические настройки.

В качестве начальных условий: кластер on prem с root доступом на узлы, установлен через kubeadm или kubespray, в качестве cni calico. В нашем случае под ногами ubuntu в качестве системы. Если у вас кластер установлен the hard way , то статья вам не нужна, вы сами всё умеете.

Читать далее

Компиляторы, AI-ассистенты и вызов IOCTL: доклады о С++ и Linux вместо новогоднего кино

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

Представьте, что вам не нужно выбирать. Ни между красной и синей таблетками, ни между макарошками и пюрешкой, ни между светлой и темной сторонами. Вы можете взять лучшее от каждого предложения. Мы посмотрели все доклады System Level Meetup, выбрали самые интересные, собрали презентации и записи в одном месте. Для удобства разделили материал на треки , C++ и С/Linux Kernel, но смотреть можно все подряд.

Читать далее

История поиска бага в ядре Linux длиной в год, или нежданные нули из XFS'а

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

Наверняка у вас тоже было такое, что сервис работает себе спокойно, радует пользователей своей стабильностью и производительностью, а вас зелёным мониторингом. А в следующий момент хлоп - и нет его. Вы на панике смотрите в логи ошибок, а там или невнятный сегфолт, или просто ничего. Что делать – непонятно, и вообще надо прод спасать, поэтому вы поднимаете его обратно и всё работает как и раньше. Вы ещё пытаетесь разобраться в причинах случившегося, но со временем переключаетесь на другие задачи, а этот случай отходит на дальний план или вообще забывается.

Но это всё хорошо когда вы один, а вот если у вас много клиентов, то рано или поздно у вас возникает ощущение что что-то не так и надо разобраться с этими всплесками энтропии, чтобы найти первопричину подобных событий.

В этой статье описано наше исследование длиною в год,  из которого вы узнаете, почему PostgreSQL(и любое другое приложение) может падать из-за бага в ядре Linux, причём тут XFS и почему очистка памяти может быть не так полезна, как вы о ней думали.

Читать далее

Утечка, которой не было: как Next.js раздувает RAM в Kubernetes

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

Привет, Хабр! Меня зовут Вадим Королёв. Я руководитель команды разработки в X5 Tech. Очень люблю Next.js и решать проблемы, которые он приносит. С ним всегда происходит что-то интересное. Расскажу о причине утечки памяти в Node.js, которая оказалась глубже, чем можно было подумать.

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

В этот момент я занимался архитектурой и оптимизацией Node.js в музыкальном стриминге. Открыл графики и увидел явный рост памяти, который уходил в пик и приводил к перезапуску подов. Так началась «классическая предновогодняя история». Next.js в Kubernetes внезапно начал есть память так, будто у него внутри чёрная дыра.

Читать далее

FTP‑сервер на Linux: настройка для домашнего проекта

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

Флешки постепенно уходят в прошлое, а облачные хранилища не всегда подходят для домашних проектов и экспериментов. Иногда хочется простого и предсказуемого способа обмена файлами — без подписок, лимитов и лишней инфраструктуры.

FTP-сервер — один из самых простых вариантов для решения этой задачи. Он не требует сложной инфраструктуры, минимально нагружает систему и поддерживается практически любыми клиентами.

В этой статье вы найдёте пошаговый гайд по развёртыванию FTP-сервера на VPS UltraVDS под управлением Debian 12 с использованием vsftpd (Very Secure FTP Daemon).

Читать далее

Минимальный планировщик с eBPF, sched_ext и C

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

Планировщик Linux долгое время оставался зоной, куда можно было заглянуть, но почти невозможно вмешаться без пересборки ядра. С появлением sched_ext эта граница сдвинулась: теперь логику планирования можно описывать кодом на C и загружать в ядро через eBPF. В статье разберём минимальный рабочий планировщик, посмотрим, как он взаимодействует с ядром, и обсудим, какие новые возможности это открывает для экспериментов и диагностики поведения системы под нагрузкой.

Вникнуть в ядро

Как работать за компьютером 12 часов в день и не превратиться в кролика

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

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

Что общего у программистов и кроликов? Красные глаза. Только кроликам это идет, а нам — не очень.

Я программист, который проводит за экраном от 6 до 12 часов каждый день, а в особо "удачные" моменты - все 18. За годы такой жизни я пришёл к выводу: либо учишься защищать глаза, либо становишься похожим на героя фильма ужасов к 30 годам.

Эта статья будет полезна не только IT-специалистам, но и всем, кто работает за компьютером.

Читать далее

Индикация раскладки клавиатуры подсветкой — решение для GNOME

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

Несмотря на весь технический прогресс IT, мне за всё время так и не удалось повстречать убедительное решение проблемы ввода «ghbdtn» вместо «привет» или «lf» вместо «да» — путаницы с раскладкой клавиатуры при наборе текста.

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

Я опишу реализацию решения для среды рабочего стола GNOME, проверенное на дистрибутивах Fedora 43 и Ubuntu 24.04.

Читать далее

Инструкция: настройка дополнительного публичного IP-адреса на облачном сервере в Linux

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

Итак, вы назначили на сервер оба IP-адреса, корректно прописали настройки сети, но работает только один канал связи. Запросы уходят через один интернет-канал, хотя активны оба. 

Дело в том, что в Linux-системах может быть только один маршрут по умолчанию (default gateway). Если у сервера несколько внешних интерфейсов с разными подсетями, то ответы на запросы, пришедшие через второй интерфейс, сервер попытается отправить через основной шлюз таблицы маршрутов. Это приведет к асимметричной маршрутизации и отбрасыванию пакетов. 

Привет, Хабр! Меня зовут Саломея Яковлева, я специалист продуктовой поддержки в Selectel. В этой статье мы разберемся, как избежать такой проблемы с помощью механизма policy-based routing (PBR) на базе iproute2: создадим отдельные таблицы маршрутов и правила, направляющие трафик через правильный шлюз. 

Читать далее

Контроль доступа в Angie

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

В любом проекте возникает необходимость ограничения доступа к определенным частям приложения. Веб‑сервер Angie предоставляет разнообразные возможности решения этой задачи с помощью стандартных (встроенных) и сторонних модулей, которые мы будем разбирать в этой статье.

Читать далее

Балансировка DNS-трафика и активные health-check'и апстримов — как и почему мы начали использовать DNSdist

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

Коллеги, всем привет!

Долгое время в нашей внутренней сети для обработки DNS-трафика мы использовали только BIND, и нам с ним было хорошо. Но в какой-то момент его возможностей перестало хватать. В статье расскажу, что именно с BIND не так и почему теперь весь DNS-трафик у нас проходит через DNSdist. И что это вообще такое...

Читать далее

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

Создание легкого shell на си

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

Многие начинающие разработчики которые начинаю писать на языке C сталкиваются с проблемой : Какой 1 пет-проект написать на C ? И вопрос то логичный ведь проекты на C никогда не славились легкостью по сравнению с проектами на python или JavaScript . И как по мне отличная идей написать shell ведь там не надо знать ассемблер или иметь глубокие знание в работе OC , и он относительно легок в понимании .

В этой статье мы с вами подробно разберем написание shell на языке C , как он устроен ,в чем отличия bash shell и cmd. И напишем свой shell на 450 строк кода

Начнем пожалуй с самыx базовых вопросах .

Читать далее

Как писать нативные игры с OpenGL ES для игровой ретро-консоли Anbernic на C#

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

В этой статье я расскажу, как писать игры для консоли Anbernic средствами OpenGL ES на C# .NET8. Для примера напишу примитивный клон Майнкрафта.

Рендерить

Проблемы с которыми я столкнулся при написании рекурсивного парсера journal в Linux

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

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

Читать далее

Tiny Core Linux 16.2: полноценная система весом 23 МБ. Что это и зачем?

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

Tiny Core Linux — редкий пример проекта, который десятилетиями остается маленьким и при этом регулярно обновляется. Актуальная версия Tiny Core Linux 16.2 по-прежнему весит всего 23 МБ. Как разработчики уложились в такой объем? Где и кому вот это все может пригодиться в 2025 году? Давайте разбираться. И, к слову, если вы сталкивались с дистрибутивом, пусть и не новой версией, расскажите, как он вам, в комментариях.

Читать далее

GD32 Unleashed: тотальная эмуляция в QEMU

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

Зачем эмулировать то, что можно купить за копейки? Тратить месяцы на создание виртуальной модели микроконтроллера, если реальная отладочная плата на базе GD32F303 стоит как пара чашек кофе? Ответ прост: хороший физический стенд — это не просто плата. Это проектирование, сборка, место в стойке, электропитание, обжиг кабелей и поддержка в рабочем состоянии. А самое главное — его часто нельзя раздать каждому разработчику. Но что, если можно запустить ту же прошивку, что и на реальном железе, в эмуляторе?

В этой статье я представляю результат работы нашей команды из отдела разработки встраиваемого ПО в YADRO. Наиболее полную на сегодняшний день модель SoC GD32F30X в QEMU и набор интерфейсов, которые делают взаимодействие с эмулируемой периферией «прозрачным» для хостовой системы.

Читать далее

Локальный диск на 288 ПБ: монтируем S3-бакет Yandex Cloud без боли

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

Решил я тут, что будет удобно иметь S3 бакет как диск в системе для всякого. Так как я плотно работаю с Yandex Cloud, то и использовать буду их бакет.

У них довольно щедрые тарифы и достаточно большие бесплатные лимиты.

Я сижу на Федоре. Для подключения бакета буду использовать GeeseFS - - высокопроизводительная файловая система S3 ( Яндекс , Amazon ), соответствующая стандарту POSIX и написанная на языке Go.

GeeseFS позволяет монтировать S3 бакет как файловую систему. Файловые системы FUSE на основе S3 обычно имеют проблемы с производительностью, особенно при работе с небольшими файлами и операциями с метаданными. GeeseFS пытается решить эти проблемы, используя агрессивный параллелизм и асинхронность.

Будет работать кстати и на винде.

Естественно нужно иметь аккаунт в яндекс облаке. У меня он есть. Создать новый не представляет сложности. Там ещё и грант 4000 рублей дадут. Поэтому переходим к делу.

В облаке нужно будет создать бакет. А так же статические ключи доступа.

Скачиваю бинарник https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64. Кстати должна быть установлена ещё fuse, в федоре она предустановлена.

В профиль aws нужно добавить созданный ранее статический ключ доступа. Если вы не пользовались aws cli, то нужно создать файл ~/.aws/credentials, если пользовались то файл уже есть. В него нужно добавить профиль

Читать далее

Самые частые ошибки при настройке VPS: опыт техподдержки

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

«Сервер не пингуется», «интернета нет», «пароль не подходит», «почему пропало место на диске?» — если вы когда-нибудь арендовали VPS, эти фразы вам знакомы.

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

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