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

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
Держите полезные сочетания клавиш для повышения эффективности работы в bash

Навигация
Ctrl+A переместить курсор в начало строки
Ctrl+E переместить курсор в конец строки
Ctrl+F переместить курсор на один символ вправо
Ctrl+B переместить курсор на один символ влево
Alt+B / Esc+B переместить курсор влево на одно слово


Редактирование
Ctrl+U удалить все и вернуться в начала строки
Ctrl+K удалить все после курсора
Ctrl+W удалить слово перед курсором
Alt+D удалить слово после курсора
Ctrl+Y вернуть удаленное
Ctrl+D удалить символ под курсором
Ctrl+H аналогично backspace
Alt+T смена позиции текущего слова на предыдущее
Ctrl+T замена местами двух символа перед курсором
Alt+U перевод слова в заглавные после курсора
Alt+L перевод слова в строчные после курсора
Ctrl+_ отмена последнего ввода


Bash History
Ctrl+R режим обратного поиска
Ctrl+P переход к предыдущей команде
Ctrl+N переход к следующей команде
Ctrl+O выполнить найденную команду
Ctrl+G выход из режима поиска
!! выполнить предыдущую команду
!vim выполнить последнюю команду, которая начиналась на vim
!vim:p вывести последнюю команду, которая начиналась на vim
!n запустить n команду из history


Общие хоткеи
Ctrl+C завершить команду
Ctrl+L очистить экран
Ctrl+S приостановить вывод, остановить прокрутку
Ctrl+Q возобновить прокрутку
Ctrl+D закрыть оболочку
Ctrl+Z приостановить процесс


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥7
Что такое 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 | #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
Стратегии развертывания Kubernetes

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

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

🔜 Shadow

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

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

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

🔜 A/B testing

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

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

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

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

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

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥31
Ngrok — это сервис, который позволяет сделать локальный порт доступным из интернета без настройки NAT, роутера, DDNS и других протоколов. Программа создает туннель между вашим компьютером и удалённым сервером и предоставляет доступ к нему с уникального домена.

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

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

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍2
Задача: провести техническое обслуживание на сервере и всех выгнать с него

Создаем пустой файл /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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍313
Идиомы bash

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

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

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
Для отладки 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍192
Не можете вспомнить команду в Linux? Я вам помогу!

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

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

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥8
👩‍💻 Карта наиболее часто используемых команд Linux

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

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165
Простой способ записать ваши терминальные сессии 💾

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

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

script history_log.txt

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

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

Script done, file is history_log.txt

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥3👀3
Linux для сетевых инженеров

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

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

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
👩‍💻 Команда which в Linux: как найти местоположение исполняемых файлов

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

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

$ which ls
/bin/ls

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

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

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Компьютерные сети. 6-е изд.

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

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

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172
⚡️ Шпаргалка по 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24😁2
Что такое контейнеризация? Чем она отличается от виртуализации?

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

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

👉 DevOps Portal | #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Отладка дедлока FUSE в ядре Linux

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

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

👉 DevOps Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🐧 Двойные тире в командах Linux

Порой опытные админы используют команды в консоли следующим образом:
ssh root@linuxzone.ru --


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

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

У меня есть такая команда:
ssh root@linuzone.ru -- 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6110
🎹 Как вычислить человека по 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
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍17😁3
Bash и кибербезопасность: атака, защита и анализ из командной строки Linux

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

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

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

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

👉 DevOps Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤯1