Системный Администратор
2.07K subscribers
158 photos
413 videos
8 files
157 links
Канал для системных администраторов. Полезный контент по Windows, Linux и т.д.
Download Telegram
«Где быстро развернуть стенд под тест новой сборки, чтобы не угореть по времени и бюджету?»

Это один из самых частых вопросов в жизни сисадмина.

Облако кажется очевидным решением, пока не начинаешь работать с кастомной ОС, нестандартной сетевой схемой или нетипичным ПО. Тут начинается боль: ограничения по гипервизору, отсутствие root-доступа к железу…

В таких случаях спасает Yandex BareMetal. Это аренда физических серваков с полной свободой действий:

➤ Парк из тысяч серверов готовых конфигураций с RAM от 128 до 256 Гб и скоростью сети от 1 до 25 Гб/сек

➤ Установка любой ОС: из образов или своей

➤ Удобное управление по API или через KVM и SSH

➤ Необходимые мощности можно получить в течение 25 минут

Аренда на день, месяц или год со скидкой до 15%. Удобно, когда задача нестандартная, а инфраструктуру под это держать не хочется.

Тут найдете много инструкций, которые помогут загрузить свою ОС и пошагово настроить сетевую связность и подключить backup → Попробовать BareMetal
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).

👉 @sys_adminos
👍4
Zenith - что-то вроде top или htop, но с диаграммами с возможностью масштабирования, использованием CPU, GPU, сети и диска.

Особенности
Дополнительные графики использования ЦП, памяти, сети и дисков
Быстрый просмотр свободного места на диске, IP-адресов сетевых карт, частоты процессора
Выделение основных пользователей ЦП, памяти и диска
Процент заряда батареи, время зарядки или разрядки, потребляемая мощность
Таблица процессов с возможностью фильтрации по типу верхней части, включающая использование диска каждым процессом
Изменение приоритета процесса
Представления диаграмм с возможностью масштабирования (с поддержкой прокрутки назад во времени)
Управление процессами с помощью сигналов
Сохранение данных о производительности между запусками
Метрики использования GPU для графических процессоров NVIDIA (с --features nvidia), включая использование GPU для каждого процесса
Графики свободного места на диске
Учет задержек (в Linux при запуске zenith с правами root)

Установка на дистрибутивы Linux на базе Debian/Ubuntu (64-бит)

sudo apt install curl
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get


https://github.com/bvaisvil/zenith

👉 @sys_adminos
👍4
Media is too big
VIEW IN TELEGRAM
Расшивка патч-панелей

👉 @sys_adminos
🔥31👍1
apt-get — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на Debian

Команда apt-get предназначена для работы с утилитой «apt», являющейся стандартной утилитой для управлении пакетами программного обеспечения в дистрибутиве Debian, а также основанных на нем дистрибутивах (Ubuntu, Linux Mint, ...).

Вы можете использовать apt-get для установки и удаления пакетов программного обеспечения из вашей системы (группами или по одному), а также обновления системных списков пакетов программного обеспечения из подключенных на данный момент репозиториев.

Примеры использования
Установка пакета программного обеспечения:

# apt-get install <имя пакета>

Переустановка пакета программного обеспечения:

# apt-get install --reinstall <имя пакета>

Удаление пакета программного обеспечения:

# apt-get remove <имя пакета>

Удаление пакета программного обеспечения со всему файлами конфигурации:

# apt-get --purge remove <имя пакета>

Поиск пакета программного обеспечения:

# apt-cache search <имя пакета>

Обновление списков пакетов программного обеспечения из подключенных репозиториев (файлов с расширением .deb):

# apt-get update

Обновление системы (полезно для поддержания программного обеспечения в актуальном состоянии):

# apt-get upgrade

Обновление дистрибутива (утилита попытается загрузить и установить пакеты программного обеспечения из состава новой версии дистрибутива):

# apt-get dist-upgrade

Вывод короткого списка всех доступных параметров команды:

# apt-get --help

Механизм автодополнения команд
Для активации механизма автодополнения команд apt-get по клавише Tab следует добавить строку

source /etc/bash_completion

в файл .bashrc из вашей домашней директории. После этого при вводе такой команды, как «apt-get install a» и нажатии клавиши Tab командная оболочка Bash попытается подставить имя пакета программного обеспечения.

Дополнительная информация
Попробуйте выполнить команду:

apt-get moo

Вы должны будете увидеть следующий вывод:

(__)
(oo)
/------/
/ | ||
* /---/

...."Have you mooed today?"…


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

Устранение неполадок в дистрибутивах, использующих пакеты RPM
В некоторых случаях после исполнения команды apt-get будет выводиться сообщение о невозможности блокировки определенной директории. Большинство проблем, вызывающих подобное поведение, решается путем исполнения следующей последовательности команд:

rm /var/lock/rpm/transaction
rm /var/lib/rpm/__db*
rm /var/cache/apt/archives/lock

👉 @sys_adminos
👍3
Media is too big
VIEW IN TELEGRAM
Компьютерные сети. Введение, OSI
Преподаватель: Климанов Максим Михайлович

Таймкоды:
00:00:00 - Начало
00:00:09 - Организационные вопросы
00:34:25 - Начало курса: локальные и глобальные сети
00:43:56 - Классификация используемого оборудования (физический уровень), модели стевого взаимодействия (OSI)
01:01:16 - Канальный уровень
01:03:28 - Сетевой уровень
01:05:57 - Транспортный уровень
01:10:04 - Сессионный уровень
01:11:59 - Уровень представлений
01:13:18 - Уровень приложений

источник

👉 @sys_adminos
👍2
Media is too big
VIEW IN TELEGRAM
Компьютерные сети. Топология и Ethernet
Преподаватель: Климанов Максим Михайлович

Таймкоды:
00:02:24 - Сетевые топологии (физические)
00:07:45 - Развитие топологий и сред Ethernet
00:15:25 - Витая пара, ее категории и маркировка
00:35:40 - Hub-ы и связанная с ними топология
00:40:05 - Логика передачи данных в первых сетях Ethernet (CSMA/CD)
01:03:55 - Структура кадра, инкапсуляция/декапсуляция

источник

👉 @sys_adminos
👍2
Прилег отдохнуть 😞

👉 @sys_adminos
😢3
Nginxpwner - это простой инструмент для поиска распространенных неправильных конфигураций и уязвимостей Nginx.


Install:
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh


Install using Docker
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .


Run the image
sudo docker run -it nginxpwner:latest /bin/bash

https://github.com/stark0de/nginxpwner

👉 @sys_adminos
👍2
SSH авторизация в Linux по сертификату / ключу

Ещё одна мастхев практика - доступ к линукс серверам через SSH по ключу / сертификату, чтобы исключить возможность подбора пароля и сократить количество лишних движений в ежедневной рутине.

Настройка Linux для работы с SSH

Обычно по-умолчанию всё и так включено и работает, убедитесь что:
Служба/демон/сервис ssh/sshd включена и работает

Указанный порт в файле /etc/ssh/sshd_config разрешен в фаерволе

Если летит sshd shuts down with “No supported key exchange algorithms” error, ставим UsePAM yes в /etc/ssh/
sshd_config и после этого sudo systemctl restart sshd

Создаем папку, где будут храниться ПУБЛИЧНЫЕ части ключей:

Потом мы запишем содержимое публичной части ключа в authorized_keys.

Генерируем пару SSH

После генерации ключей по-умолчанию будут создано 2 файла:

id_rsa - приватная часть ключа, которой ни с кем нельзя делиться

id_rsa.pub - публичная часть ключа, содержимое которой нужно перенести на удаленный сервер

Генерируем пару SSH ключей на Windows 10

RSA Ключи с длиной 2048:

RSA Ключи с длиной 4096:

ED25519 Ключи (топовый на данный момент формат, взамен RSA

С указанием пути куда сохранить пару ключей:

ВАЖНО: Удаляем у сгенеренного паблик ключа группу ВСЕ и себе даём Полные права.

Ярлык для SSH подключения в Windows 10

ПКМ по пустому месту на рабочем столе > Создать > Ярлык > Расположение:

Генерируем пару SSH ключей на Linux

RSA Ключи с длиной 2048:

RSA Ключи с длиной 4096:

ED25519 Ключи (топовый на данный момент формат, взамен RSA


Копируем публичную часть ключа на другой хост с использованием SSH-Copy-ID

Копируем публичную часть ключа на другой хост с использованием SSH


Если каким-то магическим образом SSH-Copy-ID нет, используем OneLiner и делаем тоже самое через SSH:

Отключение SSH авторизации по паролю

В файле /etc/ssh/sshd_config:

На компьютерах под управлением Ubuntu или Debian можно использовать следующую команду:

На компьютерах под управлением CentOS/Fedora этот демон носит имя sshd:

Остальное по SSH

Чтобы вести лог подключений к SSH необходимо в файле /etc/ssh/sshd_config выставить значение LogLevel VERBOSE и перезапустить службу SSH service ssh restart

Траблшутинг SSH

На удаленном сервере сервере:
Разрешаем в фаерволе iptables тестовый порт 2222

Запускаем отдельный экземпляр SSH на 2222 порту и пробуем конектиться
/usr/sbin/sshd -d -p 2222

На клиенте в ярлыке или команде SSH можно добавить -v для verbose и читать что там не так + лог SSH на самом сервере.

👉 @sys_adminos
👍3👎1
Media is too big
VIEW IN TELEGRAM
Компьютерные сети. Ethernet. IPv4
Преподаватель: Климанов Максим Михайлович

источник

👉 @sys_adminos
👍3
MyDumper

Что такое MyDumper?
Инструмент для логического резервного копирования MySQL. Он состоит из 2 инструментов:
- mydumper, который отвечает за экспорт последовательной резервной копии баз данных MySQL
- myloader считывает резервную копию из mydumper, подключается к целевой базе данных и импортирует ее.

Оба инструмента используют возможности многопоточности.
MyDumper имеет открытый исходный код и поддерживается сообществом, он не является продуктом Percona, MariaDB или MySQL.

Зачем нам нужен MyDumper?
- Параллелизм (следовательно, скорость) и производительность (исключение дорогостоящих процедур преобразования набора символов, эффективный код в целом)
- Удобство управления выводом (отдельные файлы для таблиц, метаданных дампа и т. д., удобство просмотра/разборки данных)
- Согласованность - поддерживает моментальный снимок во всех потоках, обеспечивает точное положение master и slave журналов и т.д.
- Управляемость - поддерживает PCRE для указания включений и исключений баз данных и таблиц

Как установить

RedHat / Centos
release=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/mydumper/mydumper/releases/latest | cut -d'/' -f8)
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el7.x86_64.rpm
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el8.x86_64.rpm


Ubuntu / Debian
apt-get install libatomic1

release=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/mydumper/mydumper/releases/latest | cut -d'/' -f8)
wget https://github.com/mydumper/mydumper/releases/download/${release}/mydumper_${release:1}.$(lsb_release -cs)_amd64.deb
dpkg -i mydumper_${release:1}.$(lsb_release -cs)_amd64.deb


FreeBSD
pkg install mydumper

MacOS
brew install mydumper

https://github.com/mydumper/mydumper

👉 @sys_adminos
👍1