DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3P8kFH
Больше📈 Аналитический обзор Telegram-канала DevOps Portal | Linux
Канал DevOps Portal | Linux (@loose_code) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 13 745 подписчиков, занимая 9 235 место в категории Технологии и приложения и 47 138 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 13 745 подписчиков.
Согласно последним данным от 02 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 654, а за последние 24 часа — -2, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 18.61%. В первые 24 часа после публикации контент обычно набирает 10.36% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 2 557 просмотров. В течение первых суток публикация набирает 1 423 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 8.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как devops, kubernetes, docker, linux, ebpf.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
Благодаря высокой частоте обновлений (последние данные получены 03 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
# findmnt -x
Success, no errors or warnings detected
Если в чём-то ошибётесь, то получите ошибку:
# findmnt -x
/mnt/backup
[E] unreachable on boot required source: UUID=151ea24d-977a-412c-818f-0d374baa5012
2️⃣ Findfs сама по себе ничего не выводит. Она умеет искать файловые системы по заданными параметрами В качестве аргумента принимает значение LABEL, UUID, PARTLABEL и PARTUUID. Например так:
# findfs "UUID=151ea24d-977a-412c-818f-0d374baa5013"
/dev/sda2
Нашли файловую систему на /dev/sda2 с заданным UUID. При этом код выхода будет 0:
# echo $?
0
Если файловая система не будет найдена, код будет 1:
# findfs "UUID=151ea24d-977a-412c-818f-0d374baa5012"
findfs: unable to resolve 'UUID=151ea24d-977a-412c-818f-0d374baa5012'
# echo $?
3️⃣ Соответственно, подобную проверку можно использовать в скриптах перед тем, как выполнять какие-то действия. Это актуально для каких-нибудь бэкапов или синхронизаций на сетевых или внешних дисках. Делаем простую проверку, типа такой:
if findfs "UUID=$1" >/dev/null; then
echo "$1 connected."
else
echo "$1 not connected."
fi
Вместо echo можно сразу выполнять какое-то действие. Оно будет выполнено, если указанный скрипту UUID подключен. То есть сам скрипт работает так:
# ./check-fs.sh 151ea24d-977a-412c-818f-0d374baa5013
151ea24d-977a-412c-818f-0d374baa5013 connected.
Точно так же по аналогии можно сделать проверку точек монтирования с помощью findmnt:
if findmnt -rno TARGET "$1" >/dev/null; then
echo "$1 mounted."
else
echo "$1 not mounted."
fi
Проверяем:
# ./check-mnt.sh /mnt/extbackup
/mnt/extbackup not mounted.
Внешнее хранилище для бэкапов не смонтировано, ничего не делаем. Очень важно делать такие проверки, когда копируете что-то на примонтированные устройства. Если запустить процесс копирования при отмонтированном устройстве, то вы просто забьёте весь диск локальной системы, так как все файлы польются на неё.
Если информация оказалась полезной, то поставьте лайк этой заметке👌 Надо возвращаться к регулярному постингу, так как число подписчиков растет и негоже оставлять людей без полезностей.yes no
То консоль заполнится множеством выводов слова no, пока вы не остановите это безобразие сочетанием клавиш Ctrl + C. Как это дело применять на практике? Возьмем, к примеру, сервера, на которых установлена BitrixENV - это оболочка, которая упрощает установку, настройку и обслуживание порталов на CMS Bitrix. Если на сервере, где установлен BitrixENV ввести команду на удаление файла, то вас обязательно спросят о том, уверены ли вы в своих действия, попросив ввести y. Понимаете, теперь, как можно использовать команду yes? Представим, что вам нужно удалить несколько сотен файлов. Будете на каждый вводить y в консоль? Неее, намного удобнее будет использовать команду yes:
yes | rm *.log
В результате все файлы с расширением log будут удалены без дополнительных телодвижений с вашей стороны. Удобно? Ну еще бы! Ну а что если нужно, например, имитировать нажатие клавиши Enter? Команда yes и тут поможет:
yes "" | <команда>
Казалось бы, в приведенной выше команде мы ничего не передаем и даже слово Enter не написали, почему же должно сработать? Все потому, что суть работы yes состоит в том, чтобы не просто вывести y, она добавляет ее переносом строки (каретки, как бы выразились олды), то бишь, имитирует нажатие Enter. Поэтому в кавычках ничего нет.
Естественно, больший простор для использования yes открывается при написании BASH-скриптов, поэтому команду стоит запомнить и использовать в случае необходимости.
Как думаете, если есть команда yes, то будет ли в Linux команда no, которая дает отрицательный ответ на запросы консоли? Свои идеи на сей счет оставляйте в комментариях 💬cp -v <исходные_файлы_или_каталог> <целевой_каталог>
Или удалением:
rm -rf -v <каталог>
Выхлоп будет содержать подробности совершаемых операций. И станет наглядно видно, что происходит и когда это закончится. Согласитесь, что в определенных моментах это удобно? Естественно, ключ --verbose или -v будет работать не только с копированием или удалением.set -e 🛠
Когда вы запускаете скрипт в bash, set -e делает ваш код более надежным и предсказуемым. Эта команда говорит оболочке "если какая-то команда в скрипте завершится неудачей (ненулевым кодом возврата), то прекрати выполнение скрипта". Вот несколько примеров использования set -e для обеспечения стабильности ваших скриптов:
1. Пример с проверкой наличия файла:
#!/bin/bash
set -e
FILE="/путь/к/вашему/файлу.txt"
# Проверяем наличие файла
if [ ! -e "$FILE" ]; then
echo "Ошибка: Файл $FILE не найден."
exit 1
fi
# Ваш код, который зависит от наличия файла
2. Пример с командой, возвращающей ненулевой код:
#!/bin/bash
set -e
# Пытаемся удалить несуществующий каталог
rmdir /несуществующий/каталог
# Если команда завершится неудачей, скрипт автоматически завершится
3. Пример с ошибкой внутри подскрипта:
#!/bin/bash
set -e
# Ваш код
(
# Подскрипт, возвращающий ненулевой код
command1
command2
command3
) || {
echo "Подскрипт завершился ошибкой."
exit 1
}
# Ваш код, который выполнится только при успешном завершении подскрипта
Эти примеры демонстрируют, как set -e обеспечивает немедленное завершение выполнения скрипта при обнаружении ошибок. Используйте эту команду, чтобы сделать ваши скрипты более надежными и устойчивыми к непредвиденным ситуациям! 🚀💻
#bash #скрипты #программирование-rw-r--r--. 1 jc jc 10 ноя 7 11:39 test.txt
Что значит этот набор символов? Давайте расшифруем:
- первый символ - указывает на тип файла. В данном случае, это обычный файл.
- символы rw- показывают права доступа для владельца файла. rw- означает, что владелец (пользователь jc) имеет права на чтение (read) и запись (write) этого файла.
- символы r-- показывают права доступа для группы, к которой принадлежит файл (в данном случае, группа также имеет права только на чтение файла).
- символы r-- показывают права доступа для остальных пользователей, не являющихся владельцем и не принадлежащих к группе (они также имеют права только на чтение файла).
- последний символ . указывает на наличие SELinux-метки, что означает, что файл может иметь дополнительные атрибуты безопасности SELinux.
- 1: число обозначает количество жестких ссылок на файл (в данном случае, у файла есть только одна жесткая ссылка).
- jc: имя пользователя (владельца) файла.
- jc: название группы, к которой принадлежит файл.
- 10: размер файла в байтах.
- ноя 7 11:39: дата последней модификации файла.
- test.txt: имя файла.
Обычно, использую эту команду в самом начале работы с файлами или папками. Так сказать, осматриваю поле предстоящих действий и смотрю, что из содержимого будет интересно. К выбранным файлам и папкам уже можно применить следующую команду.
2️⃣ Команда stat
Название говорит само за себя: команда выводит информацию о конкретных файле или папке. У команды есть параметры, но я их обычно не использую. Беру и просто пишу stat <имя файла или папки>. Выхлоп у нее следующий:
Файл: test.txt
Размер: 10 Блоков: 8 Блок В/В: 4096 обычный файл
Устройство: 0/38 Инода: 744401 Ссылки: 1
Доступ: (0644/-rw-r--r--) Uid: ( 1000/ jc) Gid: ( 1000/ jc)
Контекст: unconfined_u:object_r:user_home_t:s0
Доступ: 2023-11-07 11:39:28.492328539 +0500
Модифицирован: 2023-11-07 11:39:25.705300264 +0500
Изменён: 2023-11-07 11:39:25.705300264 +0500
Создан: 2023-11-07 11:37:20.259833041 +0500
Согласитесь, что информация представлена гораздо лучше, чем при использовании первой команды? Если стоит русская локаль, то выхлоп тоже будет на русском и тут просто бери и читай, выхватывая то, что нужно. Особенно радует числовой вывод прав доступа. После считывания нужных данных уже можно планировать дальнейшие действия с файлами или папками.
3️⃣ Ничего не понятно с правами доступа
Если вы ничего не поняли в этих буквах и цифрах, который означают права доступа к файлу/папке, то на канале в Дзен выходила статья про работу с правами доступа на файлы и папки в Linux. Из нее же вы сможете легко перейти по внутренним ссылкам на цикл статей, посвященных работе с файлами и папками в Linux. Постарался в этих материалах объяснить все доступным языком с примерами.
🏁 Всего две команды позволяют получить очень много информации о файлах и папках в Linux. Польза в средах рабочего окружения от них небольшая (хотя, может вы много работаете в терминале или консольном файловом менеджере), а вот на серверах эти команды просто незаменимы.service или chkconfig.
Пример запуска службы с использованием SysV init:
sudo service apache2 start
2. systemd:
systemd - это современная система инициализации, которая заменяет SysV init во многих дистрибутивах Linux. Она управляет службами и процессами с использованием юнит-файлов, и она более мощная и гибкая по сравнению с SysV init.
Пример запуска службы с использованием systemd:
sudo systemctl start apache2
2️⃣ Как выбрать систему инициализации?
Большинство современных дистрибутивов Linux используют systemd, но некоторые старые или специализированные дистрибутивы могут все еще использовать SysV init. Вы можете проверить, какая система инициализации используется на вашем компьютере, выполнив команду:
ps -p 1 -o comm=
3️⃣ Что выбрать новичку?
Если вы новичок в мире Linux, то systemd, скорее всего, будет более удобным выбором, так как он более современный и интуитивно понятный. Он также предоставляет множество инструментов для управления службами, журналами и т. д.
Системы инициализации - это важная часть дистрибутивов Linux, и хотя они могут показаться сложными на первый взгляд, они играют ключевую роль в стабильной и эффективной работе вашей системы. Надеюсь, что этот пост помог вам лучше понять эту тему. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях! 💭 👇