Типичный Сисадмин
1.25K subscribers
363 photos
43 videos
201 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Руководство по стеку протоколов TCP/IP для начинающих

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-12-08
Горячие клавиши для работы в терминале Linux

Перемещение по строке
← , → или Ctrl + b, Ctrl + f Смещение курсора на один символ левее или правее.
Ctrl + →, Ctrl + ←
или
Alt + b, Alt + f Смещение курсора на одно слово влево или вправо
Ctrl + a, Home Установить курсор в начало строки
Ctrl + e, End Установить курсор в конец строки
Ctrl + xx Переход между двумя последними позициями курсора

Сочетания клавиш для редактирования строки в терминале.
Редактирование строки


Tab, Ctr + i Автодополнение команды или пути
Tab, tab или Alt + ?(Shift+/) Представление вариантов автодополнения
Backspace, Ctrl + h Удаление символа перед курсором
Ctrl + d Удалить символ за курсором
Ctrl + w или Alt + Backspace Удалить все символы от курсора до пробела слева
Alt + d, Esc + d Удалить символы от курсора до конца слова
Ctrl + y Вставить слова, которые были удалены с помощью Alt+d, Ctrl+w
Alt + \ Удалить любое количество пробелов вместе, где стоит курсор.
Alt + r, Esc + r Отменить все изменения внесенные в строку
Alt + c Изменить регистр буквы под курсором на заглавный и переместить курсор в конец слова
Alt + u Изменить регистр всех букв от курсора до конца слова на верхний регистр
Alt + l Изменить регистр всех букв от курсора до конца слова на нижний регистр
Alt + t Поменять местами слово под курсором и предыдущее слово
Ctr + t Переместить символ перед курсором под курсор
Ctrl + _(Sift+-) Откат редактирования (Undo)

Сочетания клавиш для просмотра истории команд.
История команд


Ctrl + r Поиск ранее введенной команды в истории
↑, ↓ или Ctrl + p, Ctrl + n Перемещение по истории ранее введенных команд и путей
Ctrl + o Вызвать последнею введенную команду
Alt + . или Esc + . Вставить аргумент команды, выполненной ранее
Alt + < (Shift+,) Повторить первую команду в буфере истории
Сочетания клавиш для управления выводом информации на экран.

Вывод на экран

Ctrl + l Очистка окна терминала
Ctrl + s Заморозить терминал
Ctrl + q Продолжить работу терминала
Ctrl + c Прервать работу терминальной утилиты
Ctrl + z Перевести работу терминальной утилиты в фоновый режим
Ctrl + d Выйти из командной оболочки bash
👍4
Шпаргалка по Docker
Как подключиться к контейнеру Docker по ssh

После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.

https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
Создаем логические тома LVM на Linux


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

Это краткое руководство по внедрению LVM на вашем linux-сервере или рабочей станции.
2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Snips.sh

Безпарольный, анонимный pastebin на основе SSH с удобным текстовым и веб-интерфейсом

Фичи:
▪️Нулевая установка: используйте с любого устройства, где установлен SSH-клиент
▪️Веб-интерфейс: код с подсветкой синтаксиса, короткие ссылки и поддержка рендеринга Markdown
▪️Текстовый интерфейс: управление и просмотр сниппетов прямо из терминала
▪️Без паролей: всё, что вам нужно — это SSH-ключ
▪️Анонимность: без регистрации, без логинов, без необходимости указывать email
▪️URL с временем жизни: ограниченный по времени доступ для безопасного обмена
▪️Возможность самостоятельного хостинга: контейнеризированный и малозатратный в плане ресурсов
▪️Определение языка с помощью ИИ: интеллектуальное распознавание исходного кода

https://github.com/robherley/snips.sh
Шпаргалка по systemd

Основные команды systemctl:

1. Проверка статуса службы:

systemctl status <имя_сервиса>


2. Запуск службы:

systemctl start <имя_сервиса>


3. Остановка службы:

systemctl stop <имя_сервиса>


4. Перезапуск службы:

systemctl restart <имя_сервиса>


5. Перезагрузка, только если служба работает:

systemctl reload <имя_сервиса>


6. Включить автозапуск службы при загрузке:

systemctl enable <имя_сервиса>


7. Отключить автозапуск службы:

systemctl disable <имя_сервиса>


8. Показать все запущенные службы:

systemctl list-units --type=service


9. Просмотр всех служб (включая остановленные):

systemctl list-units --all --type=service


10. Показать все активные сервисы, включая другие юниты (mount, timer и т.д.):

systemctl list-units --state=active


11. Маскировка службы (запрет её запуска):

systemctl mask <имя_сервиса>


12. Демаскировка службы:

systemctl unmask <имя_сервиса>
2
Основные типы DNS записей

A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
👍2
🖥 PGTune

PGTune рассчитывает конфигурацию для PostgreSQL, основываясь на максимальной производительности для данной конфигурации оборудования. Это не серебряная пуля для оптимизации настроек PostgreSQL. Многие настройки зависят не только от конфигурации оборудования, но и от размера базы данных, количества клиентов и сложности запросов. Оптимальная конфигурация базы данных может быть получена только при учете всех этих параметров.

https://github.com/le0pard/pgtune

https://pgtune.leopard.in.ua/
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Примеры использования команды grep в Linux

Отображение строк до или после строки с результатом поиска

Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды grep есть две особых опции:

-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Попробуем отфильтровать вывод команды ifconfig, который для непривычного пользователя может быть излишне объемным.

Таким образом Вы получите строку, содержащую шаблон eth0, а также 4 строки до нее:


# ifconfig | grep –A 4 eth0

Тогда как таким способом Вы получите строку, содержащую шаблон UP, а также 2 строки после нее:


# ifconfig | grep -B 2 UP


Выведение заданного числа всех соседних строк с помощью команды grep

В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:


# ifconfig | grep -C 2 lo


Подсчет числа строк, содержащих искомое выражение

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


# ifconfig | grep -c inet6


Рекурсивный поиск строки по всем каталогам с помощью команды grep

Предположим, что Вам необходимо найти все вложения указанного выражения в текущем каталоге со всеми его подкаталогами и так далее. Для этого добавьте к команде grep опцию -r:

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


# grep –r "function" *


Поиск в архивах gzip

Утилита gzip (от англ. GNU Zip) — это популярный инструмент для сжатия данных без потерь в Linux, использующий алгоритм Deflate.

При этом с помощью команды zgrep можно вести поиск по сжатому архиву точно так же, как Вы это делали вне сжатого архива с помощью команды grep. Следующая команда будет искать в архиве /var/log/syslog.2.gz строки, содержащие шаблон error с игнорированием регистра:


# zgrep –i error /var/log/syslog.2.gz
👍3
Топ полезных команд

Отправить тестовое письмо:
echo "test" | mail -s "Test Subject" user@gmail.com

Выполнить PHP функцию в консоли:
php -r "echo phpinfo();" | grep date.timezone

Отключить спящий режим на ubuntu server:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Для проверки набора переменных BASH_ENV:
$ env | grep BASH_ENV

Замер скорости диска:
dd if=/dev/zero of=testfile bs=4k count=1310720
dd if=testfile of=/dev/null bs=4k count=1310720


Обновить locate:
/usr/libexec/locate.updatedb
1
This media is not supported in your browser
VIEW IN TELEGRAM
NetAlertX — инструмент для мониторинга сетевой активности и обнаружения изменений в подключенных устройствах. Он помогает администратору отслеживать новые устройства в сети, анализировать подключение и уведомлять о любых подозрительных изменениях. Утилита может быть полезной для повышения безопасности сети и оптимизации управления подключениями.

https://github.com/jokob-sk/NetAlertX
2
Media is too big
VIEW IN TELEGRAM
OpenCost

Инструмент мониторинга затрат с открытым исходным кодом для Kubernetes и облачных вычислений

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

OpenCost был первоначально разработан и открыт компанией Kubecost. Этот проект объединяет в себе спецификацию, а также реализацию на языке Golang этих подробных требований.

https://github.com/opencost/opencost
👍2
TCP vs UDP

Приведу 7 отличий, которые было бы неплохо знать.

Существует два способа установить соединение перед отправкой данных с одного устройства на другое: с установлением соединения (connection-oriented) и без установления соединения (connectionless). В первом случае создается сквозное соединение между отправителем и получателем перед передачей данных с сохранением порядка передачи пакетов. Во втором случае пакеты передаются между отправителем и получателем без создания какого-либо соединения. Пакеты проходят по разным маршрутам от отправителя к получателю, этот способ ненадежен и не гарантирует доставку пакетов.

https://habr.com/ru/articles/732794/
👍3
Короткий совет по Linux 💡

Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.

Команда rmdir гарантирует, что каталог пуст перед его удалением.

В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete
👍3
Как найти количество открытых файлов в Linux

Чтобы узнать количество открытых файлов в Linux, можно воспользоваться следующими командами:

1. Использовать lsof (List Open Files) для подсчета открытых файлов в системе:

lsof | wc -l

Эта команда покажет общее количество открытых файлов в системе, где wc -l подсчитывает количество строк, то есть количество открытых файлов.

2. Использовать `/proc/sys/fs/file-nr` для просмотра счетчика открытых файлов:

cat /proc/sys/fs/file-nr

Этот файл содержит три числа, разделенные табуляцией:
- Первое число — текущее количество открытых файлов.
- Второе число — количество файлов, которые находятся в ожидании.
- Третье число — максимальное количество файлов, которое система может открыть.

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

lsof -p PID | wc -l

Замените PID на идентификатор процесса, который вас интересует.

4. Использовать lsof для подсчета открытых файлов конкретным пользователем:

lsof -u username | wc -l

Замените username на имя пользователя, чтобы увидеть количество открытых файлов этим пользователем.
👍31
Bash скрипт оповещения по email об остатке дискового пространства менее 10%


#!/bin/bash
used=`df -hl / | awk {'print $4'} | grep "%"`
used=${used/\%/}
if [ $used -gt 90 ];
then
echo "Attention! Available space less than 10%. Used space = $used"% | mail -s "DISK ALERT" <a href="mailto:user@host.com">user@host.com</a>
fi
6
💡Полезный набор хоткеев для работы в 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 приостановить процесс
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Шпаргалка по сетевой безопасности
3