Список полезных команд для работы с
Основные команды
1. Подключение к удаленному хосту:
Пример:
Подключается к хосту
2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:
Затем введите:
3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:
Это выполняет запрос к домашней странице на порту 80.
Встроенные команды
1. help
Показывает список доступных команд
2. open
Открывает новое соединение с указанным хостом:
3. close
Закрывает текущее соединение:
4. display
Показывает текущие параметры подключения:
5. mode
Переключает режим работы
6. send
Отправляет управляющие символы (например,
7. status
Показывает статус текущего соединения:
8. set и unset
Настраивают параметры подключения (например, установка режима эхо):
Примеры использования
1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:
2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:
Затем можно вручную ввести SMTP-команды, такие как:
3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:
Эти команды помогут вам для отладки, диагностики и проверки сетевых служб.
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 98989kill -1 98989
kill -HUP 98989 заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989 отобразить список файлов, открытых процессом с PID 98989lsof /home/user1 отобразить список открытых файлов из директории /home/user1strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом lsstrace -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 через SMARTsmartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg вывести десять последних записей из журнала загрузки ядраtail /var/log/messages вывести десять последних записей из системного журнала👍2❤1
Как динамически рассчитывать CPU для контейнеров в Kubernetes
Включена возможность динамического изменения CPU для контейнеров в Kubernetes с помощью фичи
Раньше подбор CPU был трудоемким: если установить слишком много — ресурс тратится впустую, слишком мало — приложение тормозит. Давайте рассмотрим подходы к динамическому изменению CPU.
Стратегия 1: всегда использовать 80% CPU
Если приложение загружено на 50%, увеличиваем до 80% — оставляем запас в 20 % для безопасности.
Работает отлично при уменьшении, но при увеличении — вопрос: если используем 100 %, стоит ли удвоить CPU или немного прибавить? Ответ неизвестен.
Стратегия 2: всегда использовать 80%, плюс экспоненциальный рост
Как и в стратегии 1 при уменьшении. При увеличении (при нагрузке между 80 и 100 %) используется формула:
Экспоненциальное увеличение: сильно растем, если нагрузка 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
Включена возможность динамического изменения 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
👍2❤1
Что такое Docker? В чем отличие контейнера от образа?
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме «только-чтение».
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме «только чтение» содержит верхний слой в режиме «чтение-запись».
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме «только-чтение».
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме «только чтение» содержит верхний слой в режиме «чтение-запись».
Работа с правами доступа файлов и директорий в Linux
Назначить пользователя vasya владельцем файла file
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
Назначить владельца и группу для файла /file
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
Удалить все права на директорию /directory для группы и остальных
Изменить группу-владельца для file на new_group
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
Удалить STIKY-бит с директории /home/public
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
Удалить SUID-бит с файла /bin/binary_file
Установить SGID-бит на директории /home/public
Удалить SGID-бит с директории /home/public
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
Листинг текущего каталога с правами доступа
# 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
Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell
https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
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
На вебинаре вы узнаете:
- Чем контейнеризация отличается от виртуализации и почему Docker стал стандартом.
- Как устроены контейнер, образ и Docker Engine.
- Как запустить и управлять контейнерами с помощью базовых команд docker run, ps, exec, stop).
- Как использовать Docker Hub и скачивать готовые образы.
В результате вебинара вы:
- Разберётесь в ключевых понятиях Docker.
- Научитесь запускать и управлять контейнерами.
- Сможете использовать готовые образы для своих тестовых окружений.
- Поймёте, куда двигаться дальше в изучении контейнерных технологий.
🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Professional"
👉 Для участия зарегистрируйтесь: https://vk.cc/cRtizV
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1👍1
Шпаргалка по клавиатурным сочетаниям Midnight Commander
+ вызывает окно для выделения группы файлов (можно использовать регулярные выражения)
\ снимает отметку с группы файлов (действие, обратное тому, которое вызывается по клавише +)
Meta+a
Ctrl и Shift обозначают соответствующие клавиши клавиатуры, Meta - условное обозначение для набора мета-клавиш, на современном PC это обычно Alt или Esc.F3 Просмотр файлаF4 Редактирование файлаInsert Выделение текущего объекта+ вызывает окно для выделения группы файлов (можно использовать регулярные выражения)
\ снимает отметку с группы файлов (действие, обратное тому, которое вызывается по клавише +)
Meta+Enter Вставить 'текущий объект'1 в командную строкуMeta+. не показывать или показать скрытые файлы или каталоги (начинаются на точку '.')Meta+, Переключить режим отображения панелей (вертикально/горизонтально)2Meta+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+ACtrl+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
Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell.
https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
👍2❤1
Утилиты linux
rsync
Примеры:
ss
Примеры:
ps
mpstat
Показывает статистику загрузки процессора. Команды:
free
Показывает потребление ОЗУ на текущий момент:
top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу
dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
netstat
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/ — то же самое м явным указанием sshss
-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 — найти все процессы с именем phantommpstat
Показывает статистику загрузки процессора. Команды:
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