DevOps Portal | Linux
13.4K subscribers
862 photos
111 videos
10 files
876 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
WatchYourLAN

Легковесный сетевой IP-сканер с веб-графическим интерфейсом.

Особенности:

Отправляет уведомления при обнаружении нового хоста
Отслеживает историю хостов онлайн/оффлайн
Сохраняет список всех хостов в сети
Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana

Ссылка: GitHub

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Kubernetes изнутри

Автор:
Джей Вьяс, Крис Лав
Год:
2023

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Bruno — опенсорсная IDE для изучения и тестирования API.

Это новый и инновационный API-клиент, призванный кардинально изменить существующий порядок, представленный Postman и аналогичными инструментами.

Bruno хранит коллекции в папке в ФС. Используется простой язык разметки текста Bru для сохранения информации о запросах API.

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

Ссылка: GitHub

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2😁1
😎 Хотите стать профи в отладке контейнеров? Держите обучающую серию статей от Ивана Величко, в котором сложный материал объясняется на простых иллюстрациях:

Docker: How To Debug Distroless And Slim Containers
Kubernetes Ephemeral Containers and kubectl debug Command (перевод на Habr)
Containers 101: attach vs. exec — what's the difference?
Why and How to Use containerd From Command Line
Docker: How To Extract Image Filesystem Without Running Any Containers
KiND — How I Wasted a Day Loading Local Docker Images

👉 DevOps Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
Администрирование Astra Linux

Автор:
Андреев Е.Д.
Год:
2024

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😁11🌚2
Профилировщик памяти для Linux

Софт отслеживает все выделения памяти и аннотирует эти события с помощью трассировки стека. Специальные инструменты анализа позволяют интерпретировать профиль памяти кучи, чтобы:

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

Ссылка: GitHub

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
This media is not supported in your browser
VIEW IN TELEGRAM
💡 CLI-игра с различными уровнями сложности, которая поможет освоить Git от базового уровня до профи

Ссылка: GitHub

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥3😁1
Что означает 2>&1?

Это про стандартные потоки вывода. Они имеют файловые дескрипторы:

stdout — 1 (общий поток вывода)
stderr — 2 (поток с ошибками)

Получается (2>&1) = stderr > stdout — направляем поток с ошибками, в стандартный поток вывода. Ошибки будут выводиться на экран в терминале.

Логичным было бы сделать конструкцию: 2>1. Но увы, эта схема отработает другую логическую операцию. Поток с ошибками stderr будет писать все данные в файл, у которого название будет 1.

Для этого и требуется указать символ & (амперсанд) перед stdout. Это будет интерпретировано как файловый дескриптор, а не обычный файл.

А почему тогда не &2>&1 ?
Символ & интерпретируется как файловый дескриптор только в контексте перенаправления.

Операция command &2>&1 анализируется так: command & 2>&1 — команда command будет выполнятся в фоновом режиме. А затем начнет выполнятся команда 2 с перенаправлением на стандартный вывод stdout.

Есть альтернатива с оператором |&.

|&
это сокращенный вариант от 2>&1 |

Пример:

script.sh |& tee -a /var/log/script.log


Все что script.sh выведет в потоки stdout и stderr, будет перенаправлено в файл script.log.

В официальной документации можно подробнее изучить эту штуку.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
⚡️ Вот полезные шпаргалки, которые часто нужны, но не всегда удаётся сразу вспомнить

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍348
Рассмотрим ситуацию, когда случайно/специально 😱 удалился исполняющийся bash скрипт.

Чтобы не попадать в такие ситуации, всегда храните исходники в git — это избыточно, но бекапы никто не отменял.

Скрипт удалён с диска, но продолжает работать в фоне, значит его можно как-нибудь восстановить.

Создадим подопытный скрипт: touch /tmp/script.sh:

#!/bin/bash
sleep 1000
exit

Делаем исполняемым chmod +x /tmp/script.sh и запускаем в фоне /tmp/script.sh &

Символ & может служить разделителем между командами command & command, две команды выполнятся параллельно.

Скрипт запустили, он крутится в фоне. Удалим сам файл:

rm -f /tmp/script.sh ключ -f удалит без лишних вопросов.

Восстанавливаем:

lsof -c 'script.sh'

На экран выведется простыня, нам нужна строка где в конце указан путь до скрипта, который был удален:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh

Берем PID = 261899, берем FD = 255 и делаем так:

cat /proc/261899/fd/255

А вот и исходник скрипта:

File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit

Вот полезная инфа, которая была использована в гайде:
man 5 proc # /proc/[pid]/fd/
man lsof

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3914🔥1
💡 Права доступа к файлам: пользователям Linux на заметку

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍269
GoReplay

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

Установка

Загрузите последнюю версию бинарника и соберите

Как оно работает

Самый простейший вариант: sudo ./gor --input-raw :8000 --output-stdout который действует как tcpdump. Если у вас уже есть тестовая среда, вы можете сделать так: sudo ./gor --input-raw :8000 --output-http http://staging.env

Дополнительная информация: FAQ, Troubleshooting, Issues

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚡️ Интересная коллекция приёмов по bash-у

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

Использование фрагментов из этой библии может помочь удалить ненужные зависимости из скриптов и в большинстве случаев ускорить их выполнение

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Справочник сисадмина. Все, что нужно, под рукой

Автор:
Левицкий Н.Д., Матвеев М.Д.
Год:
2024

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165
⚡️ Шпаргалка по ZFS

modinfo zfs | head -n 9 — узнать версию ZFS и другие подробности

Информация о пулах / файловых системах (ФС) на пулах
zpool list — статус пулов
zpool status -v — статус пулов подробный
zfs list — список ФС, так называются монтируемые разделы в пулах
zfs get all — вся информация по пулам

Управление пулами / дисками
ls -lha /dev/disk/by-id/ — выяснить id дисков чтобы потом на них создать пул (не юзайте имя диска типа sda — они динамически меняются)
zpool create zfspool disk-id-1 disk-id-2 — может быть сколько угодно дисков
zpool create -m /mnt/backups zfspool disk-id-1 — создать пул с указанием папки 
zpool destroy zfspool — уничтожить пул
mkfile 100m disk1 disk2 — создать файлы дисков
zpool create backups /disk1 /disk2- создать пул backups на созданных файлах
zpool create zfspool mirror /disk1 /disk2 — создать пул zfspool с зеркалированием на 2 диска
zpool add zfspool /disk3 — добавить диск в пул
zpool attach zfspool /disk3 — добавить устройство в пул, если он в зеркале — добавится в зеркало, если простой — пул расширится
zpool detach zfspool /disk3 — исключить устройство из пула
zpool remove zfspool /disk3 — удаление устройства из пула
zpool add zfspool spare /disk3 — добавление диска горячей замены в пул
zpool remove zfspool spare /disk3 — удаление диска горячей замены из пула
zpool offline zfspool /disk1 — отключить устройство, на него не будет чтения/записи, если добавить ключ -t, то после ребута станет онлайн
zpool online zfspool /disk1 — включить disk1
zpool replace zfspool /disk1 /disk3 — заменить disk 1, на disk3
zpool upgrade -v — увидеть версию, и фичи текущего ZFS, -a обновит все пулы до новейшей версии

Создание и свойства ФС
zfs create zfspool/data — создать ФС data
zfs create zfspool/backups создать ФС backups, обе ФС будут бесконтрольно расти, пока не выставлены квоты
zfs destroy -fr zfspool/backups/old — уничтожит ФС old, ключ -r — рекурсивно, если внутри ещё несколько ФС, -f — форсить
zfs set reservation=1G zfspool/data — зарезервировать 1 Гигабайт, который ФС гарантированно получит, а другие не займут
zfs list -o quota zfspool/backups — выяснить квоту в пуле на ФС backups
zfs set quota=1G zfspool/backups — установить квоту в 1 Гигабайт на ФС backups
zfs list -o compression — проверить включена компрессия или нет
zfs set compression=on zfspool/backups — включить компрессию на ФС backups в пуле zfspool
zfs set sharesmb=on zfspool/backups
 — расшарить по SMB ФС backups средствами ZFS
zfs set sharenfs=on zfspool/backups — расшарить по NFS ФС backups средствами ZFS

Монтирование
zfs mount — показать все примонтированные ФС
zfs mount zfspool/backups — примонтировать backups
zfs umount zfspool/backups — размонтировать ФС backups
zfs mount -a — смонтировать все ФС
zfs umount -a Umount — размонтировать все ФС

Снапшоты
zfs list -t snapshot — отобразить все снапшоты
zfs list -o space — сколько занимают места снапшоты
zfs snapshot zfspool/backups@test — создать снапшот ФС backups с названием test
zfs rollback zfspool/backups@test — вернуться к снапшоту backups с названием test, с ключом -r рекурсивно уничтожит промежуточные снапшоты, с ключом -f форсит анмаунт и ремаунт
zfs destroy zfspool/backups@test — уничтожить снапшот backups с названием test
zfs send zfspool/backups@march2021 > /home/backups/march2021.bak — сделать локальный бекап снапшота march2021
zfs receive zfspool2/backups2 < /home/backups/march2021.bak — восстановить из локального снапшота ФС на другом пуле
zfs send zfspool/backups@march2021 | ssh COMP02 «zfs receive testpool/testfs» — отправить снапшот по SSH на хост COMP02
zfs clone zfspool/backups@march2021 /clones/backups — клонировать существующий снапшот
zfs destroy zfspool/backups@march2021 — уничтожить клон

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Шпаргалка по Расширенным параметрам в Bash

Что такое расширенные параметры? Допустим у вас есть переменная ${var%}, что такое знак %?

${var%} удалит короткий суффикс
$(var%%} удалит длинный суффикс
${var#} & ${var##} удалит короткий и длинный префикс

var='hello world'
echo ${var%world}


На экран выведется слово hello. То есть произошло удаление короткого суффикса. Вот еще пример:

var='hello world'
echo ${var%o*} # hello w
echo ${var%%o*} # hell


Более подробно про расширенные параметры можно почитать на официальной странице.


🔜 PDF можно забрать отсюда

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Самоучитель системного администратора, 7-е издание

Автор:
Кенин А.М.
Год:
2024

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🕒 Увеличение времени сессии SSH

Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась.

На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60

TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16