LinuPark 🧙‍♂
8 subscribers
31 photos
1 video
27 links
Приветствую тебя странник!

Ты попал в пространство операционной системы Linux, надеюсь, у тебя получится найти для себя что-то новое и увереннее двигаться по пути Open Source.

Обратная связь https://LinuPark.ru
Download Telegram
Channel created
Приветствую тебя странник! 🧙‍♂
Ты попал в пространство операционной системы Linux, надеюсь, у тебя получится найти для себя что-то новое, и ты сможешь увереннее двигаться по пути Open Source.
👍21🔥1
Настройка качества звука в Linux
Говорят, что качество звука в Linux хуже, чем в Win, и это правда, но... 🙂


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

Проверяем какие технические характеристики выдаёт звуковая карта
aplay --device hw /dev/urandom --dump-hw-params


Настраиваем качество звука
Открываем конфигурацию pulse
nano /etc/pulse/daemon.conf

(Ctrl + o - сохранить, Ctrl + x - выйти)

Нас интересует два параметра resample-method и default-sample-format

Включаем их (убираем ; в начале строки) и устанавливаем значения.
resample-method имеет значения src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, trivial, speex-float-5, speex-fixed-5, ffmpeg, copy
speex-float и speex-fixed от 1 до 9 (1 -минимальное качество)

default-sample-format имеет значения u8, s16le, s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be float32le, float32be, ulaw, alaw.

После сохранения файла перезагружаем систему или убиваем и запускаем pulseaudio
pulseaudio --kill && pulseaudio --start


Рекомендованные параметры:
resample-method = speex-fixed-9
default-sample-format = float32le
default-sample-rate = 44100

Теперь качество звука в Linux может быть выше чем в Win и с этим трудно поспорить. 👌

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
Подкачка зло или добро?😰
Вселенская битва за и против не утихает по сей день...


Подкачка нужна в первую очередь для сброса излишней информации из оперативной памяти на диск, для этого есть параметр swappiness.

Swappiness определяет когда ядро начинает сброс в swap (на диск) части информации из оперативной памяти.

Его можно посмотреть в /proc/sys/vm/swappiness, стандартное значение 60
cat /proc/sys/vm/swappiness


0 - никогда, 100 - как только так сразу,
60 - при заполнении оперативной памяти свыше 40% рассматривать возможность сброса на диск

В данном случае размер и тип подкачки не имеет значения, достаточно будет около 2 Гб в файле (рекомендовано) или отдельным разделом.

Изменить значение swappiness в реальном времени:
echo 20 > /proc/sys/vm/swappiness


Постоянное изменение:
echo 'vm.swappiness = 20' >> /etc/sysctl.conf
sysctl -p


Во втором случае использование режима энергосбережения гибернация и гибридный, расчёт размера подкачки вся ОЗУ+2 Гб.

В других случаях, к примеру использование Docker, k8s и некоторых серверов базы данных, наличие подкачки является негативным параметром.
Рекомендовано подкачку отключать вовсе

Таким образом, оценка и наличие подкачки зависит от конкретных задач и условий работы системы.

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
Планировщик задач в systemd
Cron хорошо, но есть и другие...


Systemd Timers
— это unit-файл, предназначенный для планирования запуска другого сервиса. Когда срабатывает таймер, соответствующий сервис запускается.

Основные параметры:
Simple
Таймер активируется через заданное количество секунд после загрузки системы.

OnActiveSec=60s


Calendar
Запускается в определённое время календаря.

OnCalendar=*-*-* 18:00:00


Monotonic
Активирует событие относительно предыдущего события

OnBootSec=1h

OnActiveSec — срабатывает после активации юнита (systemd-сервиса).
OnBootSec — срабатывает после запуска всей системы.
OnStartupSec — срабатывает после запуска менеджера сервисов.
OnUnitActiveSec — срабатывает после последнего запуска юнита.
OnUnitInactiveSec — срабатывает после последней остановки сервиса.

ConditionPathExists
Активирует событие если существует файл /usr/local/bin/my_backup_script.sh

ConditionPathExists=/usr/local/bin/my_backup_script.sh


RandomizedDelaySec
Использовать случайную задержку перед запуском

RandomizedDelaySec=300


Создадим юнит-service, который будет вызывать скрипт резервного копирования /usr/local/bin/my_backup_script.sh

nano /etc/systemd/system/backup.service


Добавим параметры:
[Unit]
Description=Служба резервного копирования

[Service]
Type=simple
ExecStart=/usr/local/bin/my_backup_script.sh

(Ctrl + o - сохранить, Ctrl + x - выйти)

Создаем юнит-timer файл backup.timer
nano /etc/systemd/system/backup.timer


Добавляем:
[Unit]
Description=Запуск службы каждый день в полночь

[Timer]
OnCalendar=*-*-* 00:00:00
Persistent=true # задача выполнится при загрузке, если была пропущена

[Install]
WantedBy=timers.target

(Ctrl + o - сохранить, Ctrl + x - выйти)

Включаем и проверяем работу таймера
Для активации наших таймеров выполните команды:
systemctl daemon-reload
systemctl enable backup.timer
systemctl start backup.timer


Проверить состояние таймера можно командой:
systemctl list-timers | grep backup


Это покажет следующее запланированное выполнение созданного таймера.

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👌1
System Request в Linux
Повисла машина? В целом есть шанс что-то спасти...


В Linux существует особый механизм управления системой - System Request (или SysRq). Способ взаимодействия с ядром Linux, позволяющий выполнять критические операции в экстренных ситуациях. Он работает напрямую с ядром, минуя обычные пути управления системой.

Статус режима SysRq отображается в файле /proc/sys/kernel/sysrq
cat /proc/sys/kernel/sysrq

0 - выключен
1 - включен
16 - разрешена команда синхронизации
32 - разрешена команда перемонтировать файловые системы в ro
128 - разрешены перезагрузка и отключение питания
176 - сумма трёх разрешений 16 + 32 + 128


Меняем статус отправляем соответствующую цифру в файл
echo '1' > /proc/sys/kernel/sysrq


⚠️ Перед выполнением убедитесь, что клавиатура захвачена консолью, иначе SysRq выполнится на рабочей станции


Основные комбинации клавиш SysRq (Print Screen):

Alt + SysRq + hпоказывает список всех доступных команд
Alt + SysRq + sсинхронизирует файловые системы
Alt + SysRq + uпереводит файловые системы в режим только для чтения (ro)
Alt + SysRq + b перезагружает систему
Alt + SysRq + r разблокирует клавиатуру
Alt + SysRq + eотправка сигнала завершения процессам
Alt + SysRq + i принудительное завершение процессов


⚠️ Используйте System Request только в случае крайней необходимости, чтобы избежать потери данных, так как системы защиты в данном случае не предусмотрено.


Последовательность действий при зависании системы
Alt + SysRq + r - разблокирует клавиатуру
Alt + SysRq + e - отправка сигнала завершения процессам
Alt + SysRq + i - принудительное завершение процессов
Alt + SysRq + s - синхронизирует файловые системы
Alt + SysRq + u - переводит файловые системы в режим только для чтения
Alt + SysRq + b - перезагружает систему


В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👌1
Режим гибернации на Ubuntu 24 со swap-файлом
У тебя Linux и постоянно отвлекают от работы? 😤
Вечный выбор - выключить систему или оставить?
😅
А если сядет батарея?
😳

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

Включаем гибернацию на Ubuntu 24 со swap-файлом
По умолчанию работа режима гибернации отключена в большинстве дистрибутивов Linux, включая Ubuntu.


Проверяем поддержку гибернации в файле /sys/power/state
grep disk /sys/power/state

Файл содержит значение disk, значит ваш система поддерживает режим гибернацию.


Настройка swap-файла
Для правильной работы гибернации необходим достаточный объем пространства в файле подкачки (swap). Рекомендуется иметь размер подкачки равный объему оперативной памяти + 2 Гб или больше.


Ищем swap-файлы
swapon --show

Если раздел подкачки отсутствует или недостаточно велик, удалите его и создайте новый swap-файл нужного размера

Создаём swap-файл
sudo fallocate -l 10G /.swap.img
sudo chmod 600 /.swap.img
sudo mkswap /.swap.img
sudo swapon /.swap.img


Добавьте запись в /etc/fstab для автоматического монтирования swap-файла при загрузке:
echo '/.swap.img       none            swap    sw              0       0' >> /etc/fstab


Настраиваем GRUB и initramfs

Получаем UUID корня и resume_offset
lsblk -f | grep '/$' | awk '{print $(NF-3)}'; sudo filefrag -e /.swap.img | grep ' 0:' | awk '{print $4}' | sed 's/..$//'

Пример вывода:

bd574196-996a-4c31-8044-e83262cc7c40 # UUID
2199552 # resume_offset


Правим /etc/default/grub
nano /etc/default/grub

Меняем значение параметра GRUB_CMDLINE_LINUX_DEFAULT
Пример:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=bd574196-996a-4c31-8044-e83262cc7c40 resume_offset=2199552"

Значения UUID и resume_offset подставить свои

(Ctrl + o - сохранить, Ctrl + x - выйти)

Создаём /etc/initramfs-tools/conf.d/resume
nano /etc/initramfs-tools/conf.d/resume

Добавляем в файл строку
Пример значения

RESUME=UUID=bd574196-996a-4c31-8044-e83262cc7c40 resume_offset=2199552

Значения UUID и resume_offset подставить свои
(Ctrl + o - сохранить, Ctrl + x - выйти)

Обновляем конфигурацию

update-grub && update-grub2 && update-initramfs -u -k all


Если всё успешно, то перезагружаем систему

reboot

Обязательно проверь и отключи secure boot ⚠️

Активируем гибернацию

sudo systemctl hibernate


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

Как включить управление гибернацией сможешь узнать в 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👌2👍1
Утилита BC (Basic Calculator)
А почему ваш терминал не умеет в калькулятор? Умеет, смотри как...


BC
(Basic Calculator) - Утилита является частью стандартного набора инструментов большинства дистрибутивов Linux и предоставляет широкие возможности для работы с числами.

Основные возможности

- Выполнение арифметических операций
- Работа с целыми и дробными числами
- Поддержка математических функций
- Программирование простых алгоритмов
- Настройка точности вычислений

Базовое использование
Для запуска калькулятора достаточно ввести в терминале команду:
bc

2 + 3        # сложение
5 * 4        # умножение
10 / 2       # деление
15 - 7      # вычитание

Или мгновенный расчёт:
echo 10+300-11/3 | bc

Вывод 307

Утилита bc находит применение в различных сценариях:
- Быстрые математические вычисления в терминале
- Написание простых скриптов для расчётов
- Автоматизация вычислений в shell-скриптах
- Обучение основам программирования
- Работа с большими числами

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1🤝1
Структура каталогов корневой файловой системы Linux
В Linux нет дисков, как же разобраться? Не совсем так, давай разбираться...

В Linux есть понятие файловая систем, ровно, как и в других операционных системах, но с одним отличием, тут она одна и её начало или верхний уровень называется корнем " / ". При подключении других файловых систем, к примеру диска или USB-накопителя, её файловая система своим началом, верхним уровнем (тоже корнем " / " относительно устройства) подключается (правильнее монтируется) к какой-то папке (правильнее каталогу) в системе и становится частью обшей структуры каталогов.

Основные каталоги корневой системы
/

Корневой каталог, начало дерева каталогов всей файловой системы.


/bin

В нём размещаются системные программы (бинарные файлы).
Например, основные команды ядра Linux (cp, cat, mount и другие).


/boot

В этом каталоге размещается загрузчик системы и некоторые дополнительные файлы, которые нужны для запуска Linux.


/dev

Каталог содержит файлы, которые представляют физические устройства компьютера. Через эти файлы осуществляется интерфейс для устройств.


/etc
В каталоге хранятся системные файлы и конфигурации. Например, здесь хранятся такие файлы как fstab, passwd, hosts и другие.


/home

Домашние каталоги пользователей. У каждого пользователя в /home есть свой определённый каталог, имя которого совпадает с именем пользователя.


/lib

В каталоге размещены системные библиотеки и модули ядра.


/media
В этот каталог обычно монтируются съёмные носители. Для каждого устройства в каталоге /media создаётся отдельный каталог.


/mnt

В этот каталог обычно монтируют на время дополнительные файловые системы.


/opt

В этот каталог обычно устанавливают дополнительное программное обеспечение (ПО), которое является дополнением к базовому ПО дистрибутива.


/proc

В каталоге размещена так называемая псевдофайловая система — виртуальная файловая система информации о ядре и процессах.


/root
Домашний каталог пользователя root. В каталоге размещаются файлы пользователя root.


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


/srv

(«только для чтения»)
Каталог содержит неизменяемые данные для сервисов, предоставляемых данной системой.


/tmp

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


/usr
В этом каталоге хранятся исполняемые файлы, библиотеки и файлы документации для внутренних служб, компоненты ядра для функционирования операционной системы, а также данные программ, установленных пользователями.


/var

Каталог содержит различные данные, которые обычно изменяются со временем.
Например, в нём могут размещаться сохранённые данные для игр, файлы регистраций, буферы печати. В нём же хранятся файлы системных журналов (в каталоге /var/log).


В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
👌2👍1🤝1
Типы баз данных
Какие бывают базы данных? По сути 2 типа реляционные и не реляционные, давай поподробнее...


Реляционные

Самый распространенный тип, где данные хранятся в виде связанных между собой таблиц.
Примеры:
MySQL, Oracle DB, PostgreSQL

Особенности:
— Структурированное хранение данных
— Использование SQL для управления
— Четкие связи между таблицами
Преимущества:
— Простота организации данных
— Возможность сложных запросов
— Поддержка больших объемов информации

Не реляционные (NoSQL)
NoSQL БД — базы данных, не использующие табличную структуру.

Включают несколько подтипов:

Колоночные
Примеры:
ClickHouse, Cassandra, HBase

Применение: аналитика больших данных
Плюсы: высокая производительность при работе с большими объемами

Графовые
Примеры:
Neo4j, JanusGraph

Применение: социальные сети, логистика, анализ связей
Особенности: хранение и обработка сложных взаимосвязей

Резидентные
Примеры:
Redis, Memcached

Особенности:
— Хранение данных по принципу “ключ-значение”
— Высокая скорость работы
— Работа в оперативной памяти

Документоориентированные
Примеры:
MongoDB, CouchDB

Особенности:
— Хранение данных в формате документов
— Гибкая структура
— Поддержка больших объемов

Иерархические
Пример:
IMS, TDMS

Особенности:
— Организуют данные в древовидную структуру
— Отношения “один ко многим”
— Строгая структура
— Простота навигации

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

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1👌1
Утилита bpytop
А есть что-то красочнее top и atop? Есть, давай установим...


BpyTop
- мощный инструмент мониторинга системы, разработанный для Linux и macOS, позволяет отслеживать использование ресурсов в режиме реального времени. Это усовершенствованная версия классического htop и bashtop.

Особенности:
Графическое представление

Отображает статистику загрузки процессора, памяти, диска и сети в графическом виде, что облегчает понимание текущих процессов.

Детализация

Можно просматривать подробную информацию о каждом процессе, включая потребление CPU, RAM, I/O и многое другое.

Поддержка управления мышью

Большая часть функционала управляется с помощью мыши, что сильно отличается от других утилит.

Установка bpytop
apt install bpytop


Мониторинг

bpytop


Мониторинг нагрузки на CPU

bpytop -b cpu


BpyTop
является удобным инструментом с хорошей визуализацией для любого администратора, работающего с Linux и MacOS системами.

В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🤝1
Утилита FREE 🆓
А как посмотреть оперативную память и подкачку в Linux? Проще не существует...


Наиболее распространённая утилита, которая всегда присутствует в системе, для просмотра состояния оперативной памяти (ОЗУ) и пространства подкачки (SWAP)

Основные ключи для вывода
-m # вывод в Мб
-g # вывод в Гб
-w # раздельный вывод buffers и cache
-s N # периодичность запроса (free -s 3)
# количество запросов


Разбираем вывод утилиты
total (всего) # общий объём видимого пространства
used (занят) # используемая память
free (своб) # свободная память
shared (общая) # разделяемая память
buffer (буферы) # память буферов ядра
cache (врем.) # закешированные данные (могут быть удалены без потерь)
available (доступно) # оценочные данные доступной памяти для новых процессов


Запускаем утилиту
free -wm


В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👌1
SSH доступ по ssh-ключу
Могут ли подобрать пароль по ssh? Да, могут и это скорее вопрос времени... Лучше не использовать пароль, давай настроим вход по ключу...


Настраиваем ssh доступ по ssh-ключу

Для начала проверяем наличие ssh-сервиса на рабочей станции или сервере
systemctl status ssh
# или
systemctl status sshd


Если его нет, то устанавливаем и включаем автозапуск:
apt install ssh -y
systemctl enable ssh
# или
systemctl enable sshd


После генерируем ssh-ключ на машине с которой будет производиться подключение
ssh-keygen

В процессе генерации можно задать фактор-пароль к ключу, но это не обязательно, можно просто нажать Enter


Копируем публичную часть ключа на удалённую машину, в нашем случае это 192.168.122.128, пользователь user
ssh-copy-id user@192.168.122.128


После закрываем вход по ssh для пользователя root на удалённой машине
nano /etc/ssh/sshd_config

Меняем параметр #PermitRootLogin prohibit-password на PermitRootLogin no


Отключаем возможность удалённого входа с помощью пароля для всех на удалённой машине
Меняем #PasswordAuthentication yes на PasswordAuthentication no

(Ctrl + o - сохранить, Ctrl + x - выйти)

Проверяем наличие дополнительной конфигурации ssh в /etc/ssh/sshd_config.d/
Если там есть дополнительное файлы и в них содержится настройка PermitRootLogin и PasswordAuthentication, то их нужно удалить или закомментировать (прописать # в начале строки)


Перезагружаем сервис ssh
systemctl restart ssh
# или
systemctl restart sshd


Пробуем подключиться с помощью ключа
ssh user@192.168.122.128


Если при подключении не было запроса пароля, то аутентификация прошла успешно с помощью ssh-ключа


В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🤝1
Создаём SWAP-файл (файл подкачки) на лету в Linux
Можно без перезагрузки добавить swap? Можно не только добавить, но и поменять приоритет, давай покажу...


Проверяем текущий SWAP, отключаем и удаляем его (при необходимости можно не удалять)
swapon -s
swapoff /swapfile
rm /swapfile


Создаём новый файл, выставляем биты доступа и форматируем в SWAP
fallocate -l 4G /.swap.img
chmod 600 /.swap.img
mkswap /.swap.img


Включаем SWAP
swapon /.swap.img


Добавляем в автоматическое монтирование
echo '/.swap.img       none            swap    sw              0       0' >> /etc/fstab


Управление приоритетом (опционально), если несколько файлов
swapon --show=NAME,PRIO # Проверите текущий
swapon /.swap.img -p 100 # Установить новый


Смотрим утилитой free
free -m


В 🖥 Блог LinuPark

📱 LinuPark в Telegram | 🖥 Блог LinuPark
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👌1👨‍💻1