DevOps Portal | Linux @loose_code Channel on Telegram

DevOps Portal | Linux

@loose_code


Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Связь: @devmangx

DevOps Portal | Linux (Russian)

DevOps Portal | Linux - это канал, который приглашает вас в захватывающий мир DevOps и Linux. Если вы заинтересованы в разработке, тестировании и сопровождении программного обеспечения, то это место для вас. Здесь вы найдете актуальные статьи, новости, обзоры инструментов и технологий, а также сможете общаться с единомышленниками и специалистами в области DevOps. Наш канал - это не просто информационный ресурс, а целый портал, где вы сможете углубить свои знания и навыки в данной области.

Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps уже сегодня! Связь: @devmangx

DevOps Portal | Linux

21 Nov, 14:08


Python для сетевых инженеров. Автоматизация сети, программирование и DevOps

Автор:
Чоу Э.
Год:
2023

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

21 Nov, 11:07


⚡️Всероссийский Хакатон ФИЦ 2024

🚀Попробуйте себя в одном из предложенных кейсов:
1. Семантический делитель текстов: Разработать алгоритм, который сможет обеспечить точное разделение текста на блоки в рамках произвольно заданных ограничений размера блока.

2. Контекстный перевод названий научных работ: Разработать и реализовать переводчик, который будет переводить названия научных работ с русского на английский.

3. Прогнозирование бизнес драйверов: Разработать решение для задачи прогнозирования временных рядов бизнес-драйверов и произвести прогноз на следующий календарный месяц.

4. Система контроля и управления доступом: Разработка системы контроля и управления доступом в реальном времени. Система будет включать API для управления сотрудниками, точками доступа и интеграцию с системой видеонаблюдения.

И другие 16 кейсов смотрите на сайте: https://фиц2024.рф/hackathon

Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.

🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря

Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon

Реклама. ООО «Акселератор Возможностей», ИНН: 9704005146, erid: 2VtzquqsWwY

DevOps Portal | Linux

21 Nov, 08:30


Сегодня хочу поделиться полезной информацией о том, как запускать процессы в фоновом режиме через терминал Linux. Это удобный способ выполнить задачу и продолжить работу, не прерывая своего текущего сеанса. 🐧

Для запуска процесса в фоне используется специальный символ "&". Давайте посмотрим на примере команды "command":

1️⃣ Простая команда:
$ command &


Таким образом, "command" будет запущен в фоне, и вы сможете продолжать работать в терминале.

2️⃣ Запуск команды в фоновом режиме с выводом в файл:
$ command > output.txt &


В данном случае вывод команды "command" будет перенаправлен в файл "output.txt", а сам процесс будет запущен в фоне.

3️⃣ Запуск команды в фоновом режиме без вывода:
$ command > /dev/null &


В этом примере команда "command" будет выполнена в фоне, а вывод будет направлен в специальное устройство "/dev/null", которое игнорирует вывод.

4️⃣ Запуск процесса в фоне с возможностью отключиться от терминала:
$ nohup command &


Команда "nohup" позволяет запустить процесс в фоне и отключиться от терминала, не прерывая его выполнение. Вывод будет сохранен в файле "nohup.out".

Теперь вы знаете, как запускать процессы в фоне через терминал Linux! Этот метод очень удобен для выполнения долгих задач и автоматических скриптов.

👉 DevOps Portal

DevOps Portal | Linux

19 Nov, 08:09


How To Secure A Linux Server

В репозитории содержится развивающееся руководство по обеспечению безопасности сервера GNU/Linux.

Руководство освещает такие темы, как:
SSH Server
The Network
The Auditing
The Danger Zone
The Miscellaneous

https://github.com/imthenachoman/How-To-Secure-A-Linux-Server

👉 DevOps Portal | #ресурсы

DevOps Portal | Linux

18 Nov, 10:03


🔒 Защити свои файлы и сообщения с легкостью!

Cегодня расскажу вам о простом способе шифровки файлов и сообщений при помощи терминала Linux. Это отличный способ обеспечить конфиденциальность ваших данных

Команда для шифровки файлов:

Для шифрования файлов мы будем использовать утилиту GPG (GNU Privacy Guard). Она позволит нам создать зашифрованный файл из обычного. Процедура проста и состоит из нескольких шагов:

1️⃣ Установка GPG:

Если вы еще не установили GPG, выполните в терминале команду:
sudo apt-get install gnupg


2️⃣ Шифрование файла:

Теперь, когда GPG установлен, вы можете зашифровать файл с помощью команды:
gpg -c имя_файла


После выполнения этой команды, вы будете попрошены ввести пароль для шифрования файла.

3️⃣ Расшифровка файла:

Для расшифровки файла выполните команду:
gpg имя_файла.gpg


GPG запросит вас ввести пароль, который вы использовали при шифровании файла.

4️⃣ Команда для шифрования сообщений:

Вы также можете зашифровать текстовые сообщения при помощи GPG. Для этого выполните следующую команду:
echo "Ваше сообщение" | gpg -e -r имя_получателя > зашифрованное_сообщение.gpg


Здесь "имя_получателя" - это публичный ключ получателя сообщения. Он должен иметь публичный ключ GPG, чтобы расшифровать сообщение.

💡 Обратите внимание, что без публичного ключа получателя расшифровка сообщения будет невозможной!

Таким простым способом вы можете обезопасить свои файлы и сообщения от несанкционированного доступа. Не забывайте хранить ваши пароли и ключи в надежном месте.

👉 DevOps Portal

DevOps Portal | Linux

18 Nov, 06:07


🔍 Как узнать, какой процесс открыл определенный ресурс?

Если вас интересует, какой процесс открыл определенный ресурс, будь то файл или сетевой порт, у вас есть полезная команда - fuser. Вот как это работает:

1. Чтобы узнать, какой процесс открыл сетевой порт 23 (например, TCP), выполните следующую команду:
fuser -va 23/tcp


Вы получите идентификатор процесса, который открыл этот порт.

2. Если вам нужно узнать, какой процесс открыл определенный файл, используйте команду:
fuser -va /путь/к/файлу


Например, для файла /chroot/etc/resolv.conf команда будет выглядеть так:
fuser -va /chroot/etc/resolv.conf


Вы узнаете идентификатор процесса, который открыл этот файл.

После того как вы узнали идентификатор процесса, дальние шаги зависят от вас. Например, вы можете завершить этот процесс с помощью команды kill.

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

👉 DevOps Portal

DevOps Portal | Linux

16 Nov, 16:07


Администрирование системы защиты SELinux

Авторы: Вермейлен Свен
Год: 2020

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

16 Nov, 10:06


👩‍💻🔍 Сегодня хочу поделиться пятью полезными способами, с помощью которых вы можете получить информацию о расходуемой памяти в вашей системе:

1️⃣ Команда free: Используйте команду free в терминале, чтобы увидеть общее использование и доступную память, а также использование подкачки.

2️⃣ Процессор top: Запустите команду top для мониторинга активных процессов и их потребления памяти в реальном времени.

3️⃣ Команда ps: Используйте ps aux для просмотра списка активных процессов и их потребления ресурсов, включая память.

4️⃣ Профилирование процессов: Используйте инструменты профилирования, такие как htop или atop, чтобы получить более подробную информацию о загрузке ЦП и памяти.

5️⃣ /proc файловая система: В директории /proc есть файлы и директории, которые предоставляют информацию о текущем состоянии процессов и ресурсах, включая память.

Выберите удобный для вас метод и отслеживайте использование памяти в вашей Linux-системе. Это поможет вам оптимизировать ресурсы и улучшить производительность

👉 DevOps Portal

DevOps Portal | Linux

14 Nov, 10:02


👩‍💻 Обзор файловой системы Linux

Эта схема показывает структуру файловой системы Linux и объясняет предназначение различных директорий, находящихся в корневом каталоге /

/bin - Бинарные файлы основных команд
/boot - Файлы загрузчика системы
/dev - Файлы устройств
/etc - Системные конфигурационные файлы, специфичные для хоста
/home - Домашний каталог пользователя
/lib - Модули общих библиотек
/media - Файлы мультимедиа, такие как CD-ROM
/mnt - Временно смонтированные файловые системы
/opt - Дополнительные пакеты программного обеспечения
/proc - Интерфейс к структурам данных ядра
/root - Домашний каталог пользователя root
/run - Данные времени выполнения
/sbin - Системные бинарные файлы
/srv - Служебные данные, обслуживаемые этой системой
/sys - Виртуальный каталог для информации о системе
/tmp - Временные файлы
/usr - Ресурсы Unix-системы
/var - Файлы, которые постоянно изменяются

👉 DevOps Portal

DevOps Portal | Linux

12 Nov, 09:41


Быстрый совет для Linux 👩‍💻

Вы можете включить временные метки в истории команд bash, чтобы видеть, когда вы выполняли предыдущие команды. Это может быть полезно для отслеживания того, над чем вы работали и когда

Чтобы добавить временные метки в историю, просто установите переменную окружения HISTTIMEFORMAT следующим образом:
$ export HISTTIMEFORMAT="%F %T "


Теперь, когда вы просматриваете свою историю или ищете в ней с помощью grep, вы будете видеть временную метку рядом с каждой командой, указывающую, когда она была выполнена:
$ history | tail -n 5


Или, чтобы сэкономить несколько нажатий клавиш:
$ history 5


Формат "%F %T" отображает дату и время, но вы можете настроить его под свои предпочтения.

Примечание: Это не добавляет временные метки к командам, которые вы выполняли до установки HISTTIMEFORMAT, и работает только в bash.

👉 DevOps Portal

DevOps Portal | Linux

08 Nov, 06:21


Сегодня расскажу вам, как отправить электронное письмо прямо из терминала Linux! ✉️

1️⃣ Вам понадобится установленный пакет "mailutils", чтобы воспользоваться утилитой "mail". Если его у вас нет, установите с помощью команды:

sudo apt-get install mailutils


2️⃣ Теперь, для отправки письма, воспользуйтесь следующей командой:

echo "Текст вашего письма" | mail -s "Тема письма" адрес_получателя@example.com


Замените "Текст вашего письма" на текст сообщения, "Тема письма" на тему письма и "адрес_получателя@example.com" на адрес электронной почты получателя.

3️⃣ Если нужно отправить письмо с вложением, воспользуйтесь командой "mutt":

mutt -s "Тема письма" -a /путь/к/вашему_файлу.txt адрес_получателя@example.com < /путь/к/текстовому_файлу.txt


Замените "/путь/к/вашему_файлу.txt" на путь к вашему вложению и "/путь/к/текстовому_файлу.txt" на путь к текстовому файлу с телом письма.

Теперь вы можете отправлять письма из терминала Linux! Хорошего дня 🤝

👉 DevOps Portal

DevOps Portal | Linux

07 Nov, 10:30


🐧🔍 Сегодня хочу поделиться пятью полезными способами, с помощью которых вы можете получить информацию о расходуемой памяти в вашей системе:

Команда free: Используйте команду free в терминале, чтобы увидеть общее использование и доступную память, а также использование подкачки.

Процессор top: Запустите команду top для мониторинга активных процессов и их потребления памяти в реальном времени.

Команда ps: Используйте ps aux для просмотра списка активных процессов и их потребления ресурсов, включая память.

Профилирование процессов: Используйте инструменты профилирования, такие как htop или atop, чтобы получить более подробную информацию о загрузке ЦП и памяти.

/proc файловая система: В директории /proc есть файлы и директории, которые предоставляют информацию о текущем состоянии процессов и ресурсах, включая память.

Выберите удобный для вас метод и отслеживайте использование памяти в вашей Linux-системе. Это поможет вам оптимизировать ресурсы и улучшить производительность

👉 DevOps Portal

DevOps Portal | Linux

07 Nov, 08:30


Это — база по Machine Learning и Data Science, которая заменит вам сотни тг-каналов и сайтов. Фишка в том, что здесь опытные ML-специалисты первыми освещают новости сферы, пишут емкие разборы статей и делятся прикладными материалами.

И канал – только часть клада: ребята сделали целый сайт с научными лонгридами, ML-соревнованиями и свежими вакансиями индустрии.

Подписывайтесь: @data_secrets – это жемчужина, которую можно уверенно рекомендовать.

DevOps Portal | Linux

07 Nov, 06:25


CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

🔜 Читать подробнее

👉 DevOps Portal | #cтатья

DevOps Portal | Linux

06 Nov, 16:51


Bash и кибербезопасность: атака, защита и анализ из командной строки Linux

Авторы: Пол Тронкон, Карл Олбинг
Год: 2020

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

06 Nov, 07:57


🎹 Как вычислить человека по IP, используя терминал и Linux?

Раньше в интернете была популярна фраза "я тебя по IP вычислю", но сегодня давайте разберемся, насколько это возможно на самом деле, используя терминал Linux. 👩‍💻

Определение местоположения человека по IP-адресу – это интересная тема, и оно основано на технологии геолокации. Отмечу сразу, что точность определения зависит от множества факторов, и это не так просто, как кажется.

Самый простой способ:

Linux предоставляет утилиту geoiplookup, которая может выдать информацию о стране, городе и провайдере по IP-адресу. Вы можете воспользоваться этой командой в терминале следующим образом:

geoiplookup <IP-адрес>

Замените <IP-адрес> на конкретный IP, который хотите проверить. Но помните, что эта информация может быть неточной, особенно если пользователь использует VPN или прокси.

Более продвинутые методы:

Существуют веб-сервисы и API, которые предоставляют более точную информацию о местоположении по IP-адресу. Вы можете использовать такие сервисы, отправляя запросы через терминал с помощью утилиты curl. Например, сервис "ipinfo.io" предоставляет информацию о городе, регионе, стране, координатах и другие данные:

curl ipinfo.io/<IP-адрес>

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

Так что давайте воспользуемся этими способами в терминале Linux и посмотрим, что они скажут. Но помните, что это просто увлекательная возможность и не стоит полагаться на неё как на надежный метод определения местоположения.

Спасибо за вашу активность! Ваше участие делает наше сообщество интереснее и полезнее 🥳

👉 DevOps Portal

DevOps Portal | Linux

05 Nov, 16:07


🐧 Двойные тире в командах Linux

Порой опытные админы используют команды в консоли следующим образом:
ssh [email protected] --


Что означает это двойное тире? Зачем оно? Давайте разбираться.

Двойное тире означает «флаги командной строки». Оно указывает ssh или другой команде не пытаться анализировать то, что следует после параметров. На словах выглядит не очень, давайте посмотрим на практике!

У меня есть такая команда:
ssh [email protected] -- command1 --arg1 --arg2


Приведенный выше синтаксис указывает ssh не пытаться анализировать параметры arg1 и arg2 после символа «--». Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.

Короче говоря мы сообщаем ssh - все то, что идет после двойного тире, это не твои параметры и аргументы, анализировать это НЕ НАДО! СТОП! Дальше дело за command1 и его параметрами и аргументами.

Двойное тире обрабатывается не обрабатывается оболочками bash/zsh/csh/sh/fish и т.п. Оно обрабатывается средствами самих программ, но НЕ всех. Например ssh это умеет делать, как и множество других команд и утилит. Рассмотрим другие примеры.

Например, вы не сможете просмотреть файл с именем --file или -f используя команду cat. Проверяем:
cat --file
cat -f


Опа. Ошибка! cat: unrecognized option --file/f. Давайте теперь передадим двойное тире:
cat -- --file
cat -- -f


Ошибка пропала и файл успешно вывелся на экран, ну либо выскочило сообщение cat: --file/f: No such file or directory. Это нормально.

Закрепим:
rm --file       = получим ошибку
rm -- '--file' = а вот это сработает


Ну а что бы передать параметры в rm, делаем так:
rm -v -i -- '--file'
rm -f -v -i -- '-f'


Просто, логично, мелодично. Но как я и сказал выше, не все команды умеют работать с двойным тире. Например, команда echo, на все попытки подружить её с двойным тире, просто-напросто провалятся:
/usr/bin/echo -- -n
echo -- --test


выведется это:
-- -n
-- --test


Если материал оказался полезным и интересным, то поставьте лайк ❤️

👉 DevOps Portal

DevOps Portal | Linux

05 Nov, 14:07


⚡️ Экс-сотрудник лаборатории Касперского создал два канала по IT и кибербезопасности

▪️ Пакет безопасности
▪️ Культ безопасности

Здесь вы узнаете ТОП-10 IT-гигантов в России с самой слабой защитой от взломов, какие компании «барыжат» вашими персональными данными и как этому противостоять.

Для людей из индустрии: полезный софт, ИИшки для работы, новости из сферы и куча полезностей, которые не найдёте в других каналах.

Подписывайтесь: раз и два.

DevOps Portal | Linux

05 Nov, 06:29


Отладка дедлока FUSE в ядре Linux

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

🔜 Читать статью

👉 DevOps Portal | #cтатья

DevOps Portal | Linux

04 Nov, 09:35


Что такое контейнеризация? Чем она отличается от виртуализации?

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

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

👉 DevOps Portal | #собес

DevOps Portal | Linux

04 Nov, 07:35


🔒 7539 ГБ платного контента для программистов выложили в Telegram

Выбирай направление и обучайся:

👩‍💻 Java — 644 ГБ

🖥 Python — 724 ГБ

🖥 Frontend — 981 ГБ

🖥 Backend — 817 ГБ

👩‍💻 Все языки — 4373 ГБ

Пост удалится через 48 часов 🕔

DevOps Portal | Linux

04 Nov, 06:25


⚡️ Шпаргалка по CMD командам в Windows

Управление файлами и папками

COPY - Копирование файлов в другое место
DIR - Отображение файлов и папок в текущем каталоге
DEL или ERASE - Удаление файлов
EDIT - Запуск редактора файлов
CD - Изменить каталог
EXPAND - Распаковать сжатые файлы
FC - Сравнивает файлы и показывает различия между ними
FIND - Найти текстовую строку в файле
MD или MAKEDIR - Создать папку
MOVE - Переместить файлы из одной папки в другую
PRINT – отобразить содержимое текстового файла
RD или RMDIR - удалить папку
REN или RENAME - переименовать файл или папку
REPLACE - Замена файлов в одном каталоге на файлы с тем же именем в другом каталоге
ROBOCOPY - Использует программу робокопи для копирования файлов и каталогов
TREE - Показывает структуру каталогов диска или папки
TYPE - Отображает содержимое текстовых файлов
OPENFILES - Управление открытыми локальными или сетевыми файлами
XCOPY - Копирование файлов и деревьев каталогов

Приложения и процессы

SCHTASKS – Запланированный запуск приложения приложения (планировщик задач)
SHUTDOWN - Выключение или перезагрузка компьютера
TASKLIST - Список выполняемых задач
TASKKILL - Остановить или прекратить выполнение задачи (для остановки задачи используется PID, который можно узнать из TASKLIST).
REG - Запустить редактор реестра
RUNAS - Запуск задачи от имени другого пользователя

Управление дисками

CHKDISK - Проверяет диск и показывает статистику
DEFRAG - Запуск дефрагментации диска
CHKNTFS - Отображает или изменяет выполнение проверки диска при загрузке
COMPACT - Отображает и изменяет сжатие файлов в разделах NTFS
CONVERT - преобразование дискового тома FAT в NTFS
DISKPART - Отображение и настройка свойств разделов диска
FORMAT - Форматирование диска
FSUTIL - Отображение и настройка свойств файловой системы
LABEL - Создание, изменение или удаление метки тома диска
RECOVER - Восстановление данных с поврежденного или испорченного диска
VOL - Отображение метки тома и серийного номера диска

Системная информация

DATE - Выводит или устанавливает текущую дату
TIME - Выводит или устанавливает системное время
DRIVERQUERY - Отображает текущее состояние и свойства драйвера устройства
HOSTNAME - Отображает имя компьютера
SYSTEMINFO - Отображает информацию о конфигурации компьютера
VER - Позволяет просмотреть версию Windows
GPRESULT - Отображает текущие примененные групповые политики (RSoP)
GPUPDATE - Обновление групповых политик

Сеть

IPCONFIG - Отображает информацию о сетевых интерфейсах
PING - Отправляет ICMP-запросы на целевой хост, проверяет его доступность
TRACERT – Отображение пути пакетов в сети
NSLOOKUP - Поиск IP-адреса по имени ресурса
ROUTE - Отображает таблицы сетевых маршрутов
ARP - Показывает таблицу с IP-адресами, преобразованными в физические адреса
NETSH - Запускает программу управления сетевыми настройками
GETMAC - Показывает MAC-адрес сетевого адаптера
TFTP - Запускает TFTP-клиент в консоли

Настройка командной строки

CLS - Очистить экран
CMD - Отображает другую командную строку
COLOR - Устанавливает цвет текста и фона в консоли
PROMPT – Изменение начального текста командной строки
TITLE - Присвоение заголовка для текущего сеанса
HELP - Запуск справки CMD
EXIT - Выход из командной строки

👉 DevOps Portal

DevOps Portal | Linux

03 Nov, 08:09


Компьютерные сети. 6-е изд.

Авторы: Таненбаум Эндрю, Фимстер Ник, Уэзеролл Дэвид
Год: 2023

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

31 Oct, 16:24


👩‍💻 Команда which в Linux: как найти местоположение исполняемых файлов

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

Чтобы воспользоваться командой which, просто введите ее, а затем укажите имя команды, местоположение которой вы хотите найти. Например:

$ which ls
/bin/ls

Этот пример покажет вам, что команда ls находится в каталоге /bin. Это полезно, если у вас есть несколько версий программы или вы хотите убедиться, что используется нужная версия.

Вы также можете использовать опцию -a, чтобы найти все местоположения команды, если она присутствует в нескольких местах. Например:

$ which -a python
/usr/bin/python
/usr/local/bin/python

👉 DevOps Portal

DevOps Portal | Linux

31 Oct, 14:07


K2 Cloud + DevOops Conf = бесплатный день конференции для инженеров 💜

Ребята из K2 Cloud помогли организовать Community Day для DevOps-специалистов. 6 ноября ты сможешь бесплатно послушать часть докладов конференции DevOops: от основ работы сертификатов до организации Flux CD monorepo. Для участия нужно только зарегистрироваться.

Подробнее на сайте

DevOps Portal | Linux

31 Oct, 11:05


Linux для сетевых инженеров

Авторы: Роб Ванденбринк
Год: 2024

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

30 Oct, 10:07


Простой способ записать ваши терминальные сессии 💾

Не хотите ли сохранить информацию о вашей терминальной сессии? Команда script спасет вас! Она фиксирует всё: ваши вводы, выводы и даже временные метки.

Для начала записи, просто выполните:

script history_log.txt

Теперь можете спокойно вводить команды, например, ls, cal, w.

Когда закончите, завершите запись, введя команду exit в терминале. После этого вы увидите:

Script done, file is history_log.txt

Теперь все, что вы делали в терминале, сохранено в файле history_log.txt. Полезно, не правда ли?

👉 DevOps Portal

DevOps Portal | Linux

30 Oct, 08:07


⚡️ 1000+ ГБ IT-контента уже ждут вашего внимания!

Подпишись и получай всё самое полезное:

📱 Python: библиотеки, фишки и готовые скрипты для ускорения разработки.

📱 GitHub: 100+ ГБ свободного ПО для работы и экспериментов.

👩‍💻 Linux: всё для работы с системами — от bash до гайдов.

📱 Frontend: готовые решения и макеты для твоих проектов.

📱 Курсы IT: все платное - бесплатно. Обучение Python, Devops, Backend и др...

📱 Все IT: книги, шпаргалки, ресурсы и статьи для любого уровня.

🔥 Не пропусти, успей подписаться пока ссылки не сгорели!

DevOps Portal | Linux

30 Oct, 07:19


👩‍💻 Карта наиболее часто используемых команд Linux

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

Управление файлами и каталогами
Просмотр и редактирование файлов
Управление процессами
Информация о системе
Управление пользователями и группами
Конфигурация и мониторинг сети
Управление пакетами

👉 DevOps Portal

DevOps Portal | Linux

29 Oct, 12:05


Не можете вспомнить команду в Linux? Я вам помогу!

Вот бывает такое, что команда вылетела из головы. Причем прихватила не только свое название, но и какие-то команды с ключами. Что делать? Воспользуемся утилитой man с нужными ключами:
man -k <ключевое слово>

Например, вы забыли название команды, но помните, что она как-то связана с диском. Поэтому вводим следующую строку в терминал:
man -k disk

В выхлоп попадают все команды, связанные с дисками. Легко найти необходимую, вспомнить ее название и нужные ключи. Правда, все очень просто? Так что, пользуемся и наслаждаемся!

👉 DevOps Portal

DevOps Portal | Linux

29 Oct, 07:00


Для отладки bash-скриптов существует инструмент set -xve. Это мастхев фича именно на момент, создания чего-либо т. к. не всегда логика может работать правильно, а с set -xve, можно вовремя увидеть все значения переменных и т.п. не используя мусорные конструкции, например, echo «Error in function xxx».

Применяется так:
#!/bin/bash -xve
set -xve


Основные флаги set:

x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.

Пример:

Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
#!/bin/bash -xve

PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'

bar=10
echo ${bar}
echo $((6 + 6))


После выполнения мы видим:
bar=10
+(./script.sh:6): foo=10
echo ${bar}
+(./script.sh:7): echo 10
10
echo $((6 + 6))
+(./script.sh:8): echo 12
4


Теперь если скрипт где-то вылетает с плохим статусом, всегда можно узнать в какой строке это приключилось

Немного украшательств, экспортируем PS4:
PS4='\033[0;33m+(${BASH_SOURCE}:${LINENO}):\033[0m ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'


Происходит подкрашивание запускаемых строчек.

С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.

👉 DevOps Portal

DevOps Portal | Linux

28 Oct, 08:10


Идиомы bash

Авторы: Олбинг Карл, Фоссен Джей Пи
Год: 2023

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

28 Oct, 05:33


Задача: провести техническое обслуживание на сервере и всех выгнать с него

Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Предварительно нужно разрешить вообще заходить под root’ом.

Теперь нужно всех уведомить, кто в данный момент что-то делает в терминале.

Для этого воспользуемся утилитой wall.

Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.

Запускаем команду:

wall "... текст сообщения ..."


Все кто был подключен к серверу, получают сообщение:

Broadcast message from root@dev (pts/0) (текущая дата/время):
... текст сообщения ...


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

В указанное время запускаем ассасина:

pkill -9 -u `who | awk '{print $1}'| grep -v root|head -1


Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.

Wall можно заменить например на такое:

echo "какой-то текст" | write user


Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.

write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.

Или так:

echo "какой-то текст" > /dev/pts/1


👉 DevOps Portal

DevOps Portal | Linux

25 Oct, 16:07


Ngrok — это сервис, который позволяет сделать локальный порт доступным из интернета без настройки NAT, роутера, DDNS и других протоколов. Программа создает туннель между вашим компьютером и удалённым сервером и предоставляет доступ к нему с уникального домена.

Такой способ не подойдёт если вам нужно чтобы ваш сервис был доступен постоянно, но показать как работает ваш локальный сайт или потестировать работу Callback API довольно удобно.

🔜 Как пользоваться Ngrok — Читаем здесь

👉 DevOps Portal | #ресурсы

DevOps Portal | Linux

25 Oct, 14:07


🌡 10ТБ Отбороного контента по программированию и дизайну примо в Telegram

👩‍💻 Дизайн

👩‍💻 Программирование

👩‍💻 Системное администрирование

➡️ Подпишись, время ограничено!!

DevOps Portal | Linux

25 Oct, 09:31


Стратегии развертывания Kubernetes

🔜 Сине-зеленое развертывание (Blue/Green)

Эта стратегия базируется на двух продуктивных средах: «синяя» — там, где живут старые версии приложения, и «зеленая» — зона, где мы запускаем новую версию приложения.

🔜 Shadow

Теневое развертывание заключается в выпуске версии 1.1 наряду с версией 1.0, перехвате входящих запросов с первой версии и отправке на вторую без влияния на трафик. Это особенно полезно для тестирования production нагрузки на новую функцию.

🔜 Постепенное развертывание (Rolling)

Все инстансы приложения будут последовательно обновляться до новой версии.

🔜 A/B testing

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

🔜 Повторное создание (Recreate)

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

🔜 Канареечное развертывание (Canary)

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

Каждая стратегия предлагает свой подход к управлению обновлениями

👉 DevOps Portal

DevOps Portal | Linux

24 Oct, 17:57


Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?

Docker базируется на технологиях:

namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
cgroups — позволяет управлять группой процессов, и управлять их ресурсами
capabilities — позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
overlay namespaces — (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.

Компоненты докера:

Docker Daemon — тот самый Container Engine; запускает контейнеры.
Docker CLI — утилита по управлению Docker.
Dockerfile — инструкция по тому, как собирать образ.
Image — образ, из которого раскатывается контейнер.
Container
Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.

👉 DevOps Portal | #собес

DevOps Portal | Linux

24 Oct, 14:07


👩‍💻 Программирование теперь в Telegram!

Вот 10 обучающих каналов по самым востребованным направлениям в IT.

Выбирай своё направление:

👩‍💻 Python: @python_ready
🖥 Базы Данных & SQL: @sql_ready
👩‍💻 Frontend: @code_ready
👩‍💻 C#: @csharp_ready
👩‍💻 C/C++: @cpp_ready
👩‍💻 Java: @java_ready
👩‍💻 Backend: @backend_ready
👩‍💻 Все языки: @roadmap_ready
📖 IT Архив: @archive_ready
🖥 Design: @time_design

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

DevOps Portal | Linux

23 Oct, 11:07


Unix и Linux. Руководство системного администратора, 5-е издание

Автор:
Дэн Макин
Год:
2021

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

23 Oct, 08:36


👩‍💻 10 практик безопасности Docker

Предпочитайте минимальные базовые образы

Выбирайте наименее привилегированного пользователя. Просто так root не нужен.

Подписывайте и проверяйте образы для предотвращения MITM-атак

Поиск, исправление и мониторинг уязвимостей с открытым исходным кодом

Не допускайте утечки конфиденциальной информации. Иногда при создании приложения внутри образа Docker вам нужны секреты, такие как закрытый ключ SSH, чтобы извлекать код из частного репозитория, или вам нужны токены для установки частных пакетов. Если вы копируете их в промежуточный контейнер Docker, они кэшируются на том уровне, на который они были добавлены, даже если вы удалите их позже. Эти токены и ключи должны храниться за пределами Dockerfile.

Используйте фиксированные теги для неизменности

Используйте COPY вместо ADD (рекурсивно копирует локальные файлы, неявно создает каталог назначения)

Используйте метки метаданных

Используйте многоступенчатую сборку для небольших и конфиденциальных образов docker. Эта функция позволяет вам использовать несколько временных образов в процессе сборки, сохраняя только последний образ вместе с информацией, которую вы скопировали в него.

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

🔜 Вот тут подробно описаны все нюансы

👉 DevOps Portal

DevOps Portal | Linux

22 Oct, 09:44


PowerShell для сисадминов

Автор:
Адам Бертрам
Год:
2021

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

22 Oct, 06:04


🕒 Увеличение времени сессии 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

DevOps Portal | Linux

21 Oct, 09:07


Самоучитель системного администратора, 7-е издание

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

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

20 Oct, 14:14


⚡️ Шпаргалка по 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

DevOps Portal | Linux

17 Oct, 15:36


Справочник сисадмина. Все, что нужно, под рукой

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

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

👉 DevOps Portal | #книги

DevOps Portal | Linux

17 Oct, 13:44


⚡️ Интересная коллекция приёмов по bash-у

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

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

👉 DevOps Portal | #ресурсы

DevOps Portal | Linux

15 Oct, 09:25


GoReplay

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

Установка

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

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

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

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

👉 DevOps Portal | #ресурсы

DevOps Portal | Linux

15 Oct, 06:38


💡 Права доступа к файлам: пользователям Linux на заметку

👉 DevOps Portal

DevOps Portal | Linux

14 Oct, 13:21


Рассмотрим ситуацию, когда случайно/специально 😱 удалился исполняющийся 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

DevOps Portal | Linux

13 Oct, 17:46


⚡️ Вот полезные шпаргалки, которые часто нужны, но не всегда удаётся сразу вспомнить

👉 DevOps Portal | #ресурсы