DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3P8kFH
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام 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, и хотя они могут показаться сложными на первый взгляд, они играют ключевую роль в стабильной и эффективной работе вашей системы. Надеюсь, что этот пост помог вам лучше понять эту тему. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях! 💭 👇