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

По всем вопросам : @Sofiia_artamonova
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Walk — это инструмент на Go, который позволяет рекурсивно обходить директории и выполнять команды для каждого найденного файла или папки.

Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.

https://github.com/antonmedv/walk
👍1
Основные команды Linux: Управление пользователями и группами

-b – Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это / home, а пользовательские каталоги — /home/$ USER.
-c “text text” – Текстовая строка для описания id, содержащая, например, полное имя пользователя.
-e YYYY-MM_DD – Дата, когда учетная запись потеряет силу или будет заблокирована.
-G gr1,gr2,gr3 – Список дополнительных групп, которым принадлежит пользователь.
-o – Позволяет создать пользователя с неуникальным id.
-u – Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.
usermod user – изменение настроек пользователя с именем user в системе
аналогичны всем вышеуказанным для useradd
-L – блокировка учетной записи
-U – разблокировка учетной записи
userdel user – удаляет пользователя user из системы
-r – удаление домашнего каталога пользователя
users – Выдаются имена пользователей, которые в текущий момент зарегистрированы в системе
groupadd group – добавление (создание) новой группы group в системе
-f – Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.
-g – Задать id группы вручную.
-o – Разрешить группу с неуникальным id.
groupmod group – изменение информации о группе group в системе
-n group2 задание нового имени group2
groupdel group – удаление группы group из системы
passwd user – изменяет/устанавливает пароль пользователя user
-l – блокирование учетной записи
-d – удаление пароля учетной записи (блокирование)
-f – установка даты прекращения полномочий
-n – минимальное время действия пароля в днях
-x – максимальное время действие пароля в днях
-w – число дней появления предупреждения об окончании действия пароля
-i – число дней, после которых пароль потеряет силу и учетка заблокируется.
-S – вывод сообщения о статусе пользователя
gpasswd group – изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)
id who – просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)
ulimit – ограничение пользовательских ресурсов:
-a – отображение всех возможных ресурсов
-f – ограничение размера файла
-t – процессорное время
Изменение порта для подключения по SSH

Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.

Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart

После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT

Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT

где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh
👍3
Внедрение GitOps с помощью ArgoCD: пошаговое руководство

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

https://medium.com/@kalimitalha8/implementing-gitops-with-argocd-a-step-by-step-guide-b79f723b1a43
Более чем 80 средств мониторинга системы Linux

По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.

https://habr.com/ru/companies/ua-hosting/articles/281519/
1
Приостановка и продолжение исполнения процесса
Для приостановки и продолжения исполнения процессов следует использовать сигналы SIGSTOP и SIGCONT соответственно. Да, как вы наверняка уже догадались, ранее рассмотренная команда:

$ kill 14371

Превратится в команду для приостановки исполнения процесса:
$ kill -s SIGSTOP 14371

Или команду для продолжения исполнения процесса:
$ kill -s SIGCONT 14371
Что такое FSMO роли, их назначение и можно ли без них жить

Многие системные администраторы, работая с Microsoft Active Directory Domain Services не знают или не до конца понимают, что такое FSMO роли и для чего они нужны. Те кто о них знает, не всегда понимает важность этих ролей, в каких случаях владелец ролей обязательно должен быть доступен, а в каких случаях их отсутствие практически никак не отразится на работе службы каталогов.

В статье ниже, будет в кратце рассказано про Flexible single-master operations «операции с одним исполнителем». А также можно ли без них жить.

https://telegra.ph/CHto-takoe-FSMO-roli-ih-naznachenie-i-mozhno-li-bez-nih-zhit-09-07
👍2
Media is too big
VIEW IN TELEGRAM
Как работает процесс загрузки Linux?
Руководство по стеку протоколов 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