DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3P8kFH
Show more📈 Analytical overview of Telegram channel DevOps Portal | Linux
Channel DevOps Portal | Linux (@loose_code) in the Russian language segment is an active participant. Currently, the community unites 13 077 subscribers, ranking 9 447 in the Technologies & Applications category and 49 674 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 13 077 subscribers.
According to the latest data from 02 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 8 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 16.86%. Within the first 24 hours after publication, content typically collects 9.48% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 205 views. Within the first day, a publication typically gains 1 240 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 8.
- Thematic interests: Content is focused on key topics such as devops, kubernetes, docker, linux, ebpf.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
Thanks to the high frequency of updates (latest data received on 03 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
sudo pacman -S packagekit-qt5
После просто перезапускаем Discover и радуемся тому, как все работает.echo $?
Команда echo, думаю, понятно что делает. Но что за значок доллара и вопросительный знак после? Это обозначение для вывода кода завершения команды.
Логика простая: если вернется 0, то ошибок нет, команда отработала как нужно. Если получили 1, то что-то пошло не так. Все просто 🤷♂️
Использовать удобно все в тех же скриптах для проверки успешности того, как этот скрипт отработал. Например, нужно выполнить какое-то действие только после того, как будете уверены, что конфигурация верная. Вначале выполняем валидацию конфига (допустим, веб-сервера Nginx):
nginx -t
После проверяем, что вернулся 0 и если да, то выполняем команду на рестарт конфига:
nginx -s reload
Если получили 1, то нужно проверить конфигурацию веб-сервера на ошибки.
Обычному пользователю такое никогда может и не пригодится, но если вы любите скрипты и автоматизацию работы с системой, то коды завершения сильно упростят жизнь. Профи об этом уж точно знают, новичкам будет полезно 👍# 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, и хотя они могут показаться сложными на первый взгляд, они играют ключевую роль в стабильной и эффективной работе вашей системы. Надеюсь, что этот пост помог вам лучше понять эту тему. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях! 💭 👇