Админские угодья
1.6K subscribers
556 photos
45 videos
248 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Список полезных команд для работы с telnet, которые могут помочь при подключении и отладке сетевых служб:

Основные команды telnet:
1. Подключение к удаленному хосту:

telnet <hostname> <port>

Пример:

telnet example.com 80

Подключается к хосту example.com на порту 80 (HTTP).

2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:

Ctrl + ] (переход в режим команд)

Затем введите:

quit


3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:

GET / HTTP/1.1
Host: example.com

Это выполняет запрос к домашней странице на порту 80.

Встроенные команды telnet (используйте в режиме команд после нажатия Ctrl + ]):

1. help
Показывает список доступных команд telnet:

telnet> help


2. open
Открывает новое соединение с указанным хостом:

telnet> open <hostname> <port>


3. close
Закрывает текущее соединение:

telnet> close


4. display
Показывает текущие параметры подключения:

telnet> display


5. mode
Переключает режим работы telnet (например, line или character):

telnet> mode line


6. send
Отправляет управляющие символы (например, send escape для отправки escape-секвенции):

telnet> send escape


7. status
Показывает статус текущего соединения:

telnet> status


8. set и unset
Настраивают параметры подключения (например, установка режима эхо):

telnet> set echo
telnet> unset echo


Примеры использования telnet:

1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:

telnet <hostname> <port>


2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:

telnet smtp.example.com 25

Затем можно вручную ввести SMTP-команды, такие как:

EHLO example.com


3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:

telnet <dns-server> 53


Эти команды помогут вам для отладки, диагностики и проверки сетевых служб.
2👍2
📌 Команды мониторинга и отладки

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)

ps -e -o pid,args --forest вывести PID’ы и процессы в виде дерева

pstree отобразить дерево процессов

kill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)

kill -TERM 98989 Корректно завершить процесс с PID 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -f -e open ls > /dev/null вывести вызовы бибилотек

watch -n1 ‘cat /proc/interrupts’ отображать прерывания в режиме реального времени

last reboot отобразить историю перезагрузок системы

last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней

lsmod вывести загруженные модули ядра

free -m показать состояние оперативной памяти в мегабайтах

smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
👍21
Как динамически рассчитывать CPU для контейнеров в Kubernetes

Включена возможность динамического изменения CPU для контейнеров в Kubernetes с помощью фичи InPlacePodVerticalScaling.

Раньше подбор CPU был трудоемким: если установить слишком много — ресурс тратится впустую, слишком мало — приложение тормозит. Давайте рассмотрим подходы к динамическому изменению CPU.

Стратегия 1: всегда использовать 80% CPU

Если приложение загружено на 50%, увеличиваем до 80% — оставляем запас в 20 % для безопасности.

Работает отлично при уменьшении, но при увеличении — вопрос: если используем 100 %, стоит ли удвоить CPU или немного прибавить? Ответ неизвестен.

Стратегия 2: всегда использовать 80%, плюс экспоненциальный рост

Как и в стратегии 1 при уменьшении. При увеличении (при нагрузке между 80 и 100 %) используется формула:

new_cpu = average_cpu / 0.8 + (average_cpu / 0.8 * coeff)²


Экспоненциальное увеличение: сильно растем, если нагрузка 100 %, и умеренно — если 90 %. Эту стратегию легко применять: она используется в инструменте Kondense для подбора ресурсов в Kubernetes.

Стратегия 3: целевое использование 100% с учетом CPU-pressure

При уменьшении — устанавливаем на 100%, чтобы не терять ресурсы. При увеличении — смотрим на CPU pressure в микросекундах (время, которое контейнер не мог получить CPU). Чем выше давление, тем сильнее нужно увеличить CPU.

Теоретически это оптимально. Но на практике не всегда работает: порой CPU pressure высок, но увеличение CPU не помогает — зависит от характера приложения. Потребуется доработка формулы под конкретные кейсы.


Итог:
Динамическое изменение CPU — значительный шаг для Kubernetes. В будущем это позволит экономить ресурсы и развязывать руки администраторам. Уже сейчас стоит ознакомиться с инструментом Kondense, если планируете автоматизацию подбора ресурсов.


https://medium.com/@mathieuces/how-to-calculate-cpu-for-containers-in-k8s-dynamically-47a89e3886eb
👍21
Что такое Docker? В чем отличие контейнера от образа?

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.

Образ — шаблон приложения, который содержит слои файловой системы в режиме «только-чтение».

Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме «только чтение» содержит верхний слой в режиме «чтение-запись».
📌 Шпаргалка по командам Docker и Docker-compose
1👍1
Работа с правами доступа файлов и директорий в Linux

# chown vasya /file
Назначить пользователя vasya владельцем файла file
# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла /file
# chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
# chgrp new_group file
Изменить группу-владельца для file на new_group
# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа
1
Полезные инструменты CLI для администраторов Linux
2
Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell

https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
1👏1
🎥 Вебинар по Linux: Введение в Docker: контейнеры, изоляция и первые шаги.

На вебинаре вы узнаете:
- Чем контейнеризация отличается от виртуализации и почему Docker стал стандартом.
- Как устроены контейнер, образ и Docker Engine.
- Как запустить и управлять контейнерами с помощью базовых команд docker run, ps, exec, stop).
- Как использовать Docker Hub и скачивать готовые образы.

В результате вебинара вы:
- Разберётесь в ключевых понятиях Docker.
- Научитесь запускать и управлять контейнерами.
- Сможете использовать готовые образы для своих тестовых окружений.
- Поймёте, куда двигаться дальше в изучении контейнерных технологий.

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Professional"

👉 Для участия зарегистрируйтесь: https://vk.cc/cRtizV

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1👍1
Шпаргалка по клавиатурным сочетаниям Midnight Commander

Ctrl и Shift обозначают соответствующие клавиши клавиатуры, Meta - условное обозначение для набора мета-клавиш, на современном PC это обычно Alt или Esc.

F3 Просмотр файла
F4 Редактирование файла
Insert Выделение текущего объекта
+ вызывает окно для выделения группы файлов (можно использовать регулярные выражения)
\ снимает отметку с группы файлов (действие, обратное тому, которое вызывается по клавише +)
Meta+Enter Вставить 'текущий объект'1 в командную строку
Meta+. не показывать или показать скрытые файлы или каталоги (начинаются на точку '.')
Meta+, Переключить режим отображения панелей (вертикально/горизонтально)2
Meta+a
Ctrl+x,p Посылает в командную строку полный путь в текущей активной панели
Meta+c Вызывается меню быстрой смены текущего каталога на активной панели
Meta+g отмечает первый файл или каталог в отображаемом списке на панели
Meta+h Вызов меню последних выполненных команд
Meta+i Смена текущего каталога на неактивной панели, на каталог в котором вы находитесь в активной панели
Meta+j отмечает последний файл или каталог в отображаемом списке на панели
Meta+n Вернуть последующую выполненную командную строку
Meta+o неактивная панель переходит в каталог на который указывает активная панель
Meta+p Вернуть предыдущую выполненную командную строку
Meta+r отмечает средний файл или каталог в отображаемом списке на панели
Meta+t Смена режима работы панели ('Стандартный','Укороченный','Расширенный')
Meta+Shift+? Вызывается меню расширенного поиска файлов
Meta+Shift+A
Ctrl+x,Ctrl+p Посылает в командную строку полный путь в нективной панели
Meta+Shift+H Отобразить историю каталогов
Ctrl+\ Вызывается меню часто используемых каталогов
Ctrl+l Перерисовать экран
Ctrl+o Скрытие/показ панелей
Ctrl+r перечитать содержимое каталога
Ctrl+s Быстрый поиск файла или каталога
Ctrl+Space Показать размер текущего каталога
Ctrl+x,a Отображается список активных соединений виртуальных файловых систем
Ctrl+x,c Просмотр/правка прав доступа текущего объекта
Ctrl+x,i Быстрый просмотр информации о текущем объекте на второй панели
Ctrl+x,j Показ фоновых задач
Ctrl+x,l Создать жесткую ссылку с текущего объекта
Ctrl+x,o Просмотр/правка владельца/группы для текущего объекта
Ctrl+x,q Быстрый просмотр содержимого файла на второй панели
Ctrl+x,s Создает символьную ссылку symlink для текущего объекта
Ctrl+x,t Вставка всех выделенных объектов в командную строку
Ctrl+x,Ctrl+s Редактировать символическую ссылку
Shift+F1 Вызывается меню быстрого перехода между точками монтирования на левой панели
Shift+F2 Вызывается меню быстрого перехода между точками монтирования на правой панели
Shift+F3 Просмотр файла raw без учета расширения
Shift+F4 Создает новый файл
2
Примеры скриптов для системного администрирования

Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell.

https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
👍21
Утилиты linux

rsync
-v — выводит подробную информацию о процессе копирования;
[-a] — сохраняет все атрибуты оригинальных файлов;
-u — не перезаписывать более новые файлы;
-l — копирует символьные ссылки;
-L — копирует содержимое ссылок;
-p — сохраняет права для файлов;
-t — сохраняет время модификации;
-e — использовать другой транспорт, например, ssh;
[-z] — cжимает файлы перед передачей;
—recursive — перебирать директории рекурсивно;
—exclude — Исключить файлы по шаблону;

Примеры:
rsync -avz skillproject/data/ . — из подкаталога в текущий каталог
rsync -avz skillproject/data/ aaa/ — из подпапки в подпапку aaa/
rsync -avz skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/ — передача на удаленный сервер
rsync -avze ssh skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/ — то же самое м явным указанием ssh

ss
-l или —listening — посмотреть только прослушиваемые порты;
-p или —program — показать имя программы и ее PID;
-t или —tcp — показать tcp порты;
-u или —udp показать udp порты;
-n или —numeric показывать ip адреса в числовом виде.

Примеры:
ss -tlpn — проверить все прослушивающие tcp-порты
ss -tulpn | grep :80 — показать все процессы, работающие на 80-м порту

ps
ps -e — показать все процессы
ps -ef — показать подробную информацию о каждом процессе
ps -ef | grep phantom — найти все процессы с именем phantom

mpstat
Показывает статистику загрузки процессора. Команды:
mpstat — показывает общую информацию
mpstat -P ALL — по каждому ядру

free
Показывает потребление ОЗУ на текущий момент:
free -h — показывает информацию в гигабайтах (более человеко читаемо, чем в байтах)

top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу

dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
dpkg -s <packname> — проверить, установлен ли пакет
dpkg -l — список всех пакетов
dpkg -l | grep apache2 — проверить, установлен ли конкретный пакет
dpkg -i <package.deb> — установить пакет

netstat
netstat -pnltu — посмотреть список используемых портов
1