Админские угодья
1.46K subscribers
446 photos
40 videos
219 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Advanced Bash-Scripting Guide
Перевод: Андрей Киселев
Версия 2.8.7 (22 Августа 2004)

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

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

https://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
2🔥1
📌 Эти утилиты предоставляют важные возможности для анализа и отладки сетевых проблем в различных операционных системах

Windows

▪️ tracert - стандартная утилита в Windows для трассировки маршрута, которая известна многим.
tracert google.com


▪️ pathping - это встроенный в Windows аналог утилиты mtr с аналогичной функциональностью, но поддерживающий только icmp запросы. Обычно он уже установлен в системе, и его не требуется устанавливать отдельно.
pathping google.com


▪️ tracetcp - это виндовая утилита, которая может выполнять tcp syn запросы по маршруту следования пакетов. Она помогает определить доступность определенного порта и может указать, где именно блокируется этот порт. Для установки этой утилиты потребуется скачать ее с официального сайта и установить вручную.
tracetcp google.com:443


Linux

▪️ traceroute - это стандартная утилита Linux, предназначенная для трассировки маршрута. По умолчанию она использует протокол udp, но вы можете выполнить трассировку с использованием протокола icmp следующим образом:
traceroute -I google.com


▪️ tracepath - аналогична утилите traceroute, но использует протокол udp и сразу выводит значения mtu и маршрутизаторы, где происходит изменение mtu.
tracepath google.com


▪️ mtr - эта утилита объединяет функциональность утилит ping и traceroute. Она может использовать протоколы tcp, udp и icmp. В операционной системе Windows есть аналог с названием Winmtr.
mtr -c3 google.com
3👍2
Cron - лучшие практики

Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами.

У простоты cron(8), как и многих старых Unix-инструментов, есть недочёт: программа полагается на то, что пользователь хотя бы примерно знает, как всё работает, и в состоянии правильно реализовать в нём какую-то проверку безопасности.

По сути, единственное, что делает планировщик, — это пытается запустить задачу в определённое время и прислать результат на электронную почту. Для простых и незначительных задач пользователей таких возможностей вполне достаточно.

Но для более важных системных задач стоит обернуть вокруг cron(8) и вызываемых им задач дополнительную инфраструктуру. Если вам хочется отслеживать выполняемые задачи, то существует несколько способов повысить надёжность работы с cron(8).

Rus https://habr.com/ru/companies/skillfactory/articles/656423/

Eng https://blog.sanctum.geek.nz/cron-best-practices/
1
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Принцип работы протокола Kerberos
2👍1
Полезные команды Linux. Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )

# yum list
Вывести листинг пакетов, установленных в системе
# yum clean headers
Удалить все заголовки файлов, которые система использует для разрешения зависимостей
# yum clean [package]
Очистить rpm-кэш, удалив закачанные пакеты
# yum search [package]
Найти пакет в репозитории
# yum clean all
Очистить rpm-кэш, удалив закачанные пакеты и заголовки
# yum -y install [ package ]
Скачать и установить пакет
# yum update [package]
обновить пакет
# yum -y update
Обновить все пакеты, установленные в систему
# yum localinstall [ package.rpm ]
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории
# yum remove [package]
Удалить пакет
3👎1
Полезные команд для фильтрации текста и операциями с файлами в Linux

1. Команда awk
2. Команда sed
3. Команды grep, egrep, fgrep, rgrep
4. Команда head
5. Команда tail
6. Команда sort
7. Команда uniq
8. Команда fmt
9. Команда pr
10. Команда tr
11. Команда more
12. Команда less

https://telegra.ph/Poleznye-komand-dlya-filtracii-teksta-i-operaciyami-s-fajlami-v-Linux-01-21
1
Управление сервисами systemd через утилиту systemctl

systemctl start name.service – запуск сервиса.
systemctl stop name.service — остановка сервиса
systemctl restart name.service — перезапуск сервиса
systemctl try-restart name.service — перезапуск сервиса только, если он запущен
systemctl reload name.service — перезагрузка конфигурации сервиса
systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса
systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive
systemctl list-units --type service --all – отображение статуса всех сервисов
systemctl enable name.service – активирует сервис (позволяет стартовать во время запуска системы)
systemctl disable name.service – деактивирует сервис
systemctl reenable name.service – деактивирует сервис и сразу активирует его
systemctl is–enabled name.service – проверяет, активирован ли сервис
systemctl list-unit-files --type service – отображает все сервисы и проверяет, какие из них активированы
systemctl mask name.service – заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
systemctl unmask name.service – возвращает файл сервиса, делая юнит доступным для systemd
3
This media is not supported in your browser
VIEW IN TELEGRAM
Стратегии аварийного восстановления в облаке

Эффективный план восстановления после аварии (DR) - это не просто предосторожность, это необходимость.

Ключевым моментом любой надежной стратегии DR является понимание и установка двух ключевых показателей: Объекта времени восстановления (RTO) и Объекта точки восстановления (RPO).

- Объект времени восстановления (RTO) относится к максимально допустимой продолжительности времени, в течение которой ваше приложение или сеть могут быть отключены после аварии.

- Объект точки восстановления (RPO), с другой стороны, указывает на максимально допустимую потерю данных, измеряемую во времени.

Давайте рассмотрим четыре широко применяемые стратегии DR:

1. Стратегия резервного копирования и восстановления:
Этот метод включает регулярные резервные копии данных и систем для облегчения восстановления после аварии.
- Типичный RTO: от нескольких часов до нескольких дней.
- Типичный RPO: от нескольких часов до времени последнего успешного резервного копирования.

2. Подход Pilot Light:
Поддерживает ключевые компоненты в режиме готовности к активации, обеспечивая быстрое масштабирование в ответ на аварию.
- Типичный RTO: от нескольких минут до нескольких часов.
- Типичный RPO: зависит от того, насколько часто синхронизируются данные.

3. Решение с горячим резервированием:
Создает полус активное окружение с текущими данными для сокращения времени восстановления.
- Типичный RTO: обычно от нескольких минут до часов.
- Типичный RPO: до последних нескольких минут или часов.

4. Горячее сайт / Конфигурация с несколькими сайтами:
Обеспечивает полностью операционную, дублирующую среду, работающую параллельно с основной системой, обеспечивая беспрерывную функциональность.
- Типичный RTO: почти мгновенный, часто всего несколько минут.
- Типичный RPO: крайне минимальный, обычно всего несколько секунд.
1
Как защитить сервер Linux

Ограничьте, кто может использовать sudo


Почему
sudo позволяет учетным записям выполнять команды от имени других учетных записей, включая root. Мы хотим убедиться, что только нужные нам учетные записи могут использовать sudo.

Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.

Примечания
Возможно, ваша сборка уже сделала это, или у вас уже есть специальная группа, предназначенная для этой цели, поэтому сначала проверьте.
Debian создаёт группу sudo. Чтобы просмотреть пользователей, которые входят в эту группу (таким образом, имеют привилегии sudo):

cat /etc/group | grep "sudo"


Шаги

1 - Создайте группу:
sudo groupadd sudousers

2 - Добавьте учетную запись(и) в группу:
sudo usermod -a -G sudousers user1
sudo usermod -a -G sudousers user2
sudo usermod -a -G sudousers ...


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

3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")

4 - Отредактируйте файл конфигурации sudo /etc/sudoers:
sudo visudo

5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
%sudousers ALL=(ALL:ALL) ALL
1
📌 Объединение файлов командой cat

Команда cat (сокращение от «concatenate») в Linux и других UNIX-подобных системах широко используется для работы с текстовыми файлами. Одной из её ключевых возможностей является объединение (конкатенация) нескольких файлов в один.

Основные способы объединения файлов
1. Объединение двух и более файлов в один
Формат команды:

cat file1.txt file2.txt > result.txt

Этот вариант соединяет содержимое file1.txt и file2.txt и записывает его в result.txt. Если result.txt уже существует, он будет перезаписан.

2. Добавление содержимого к существующему файлу
Формат команды:

cat file1.txt >> result.txt

Эта команда добавляет содержимое file1.txt в конец result.txt, сохраняя уже имеющуюся информацию.

3. Объединение всех файлов в директории
Если нужно объединить все текстовые файлы в текущей директории в один файл:

cat *.txt > all_files_combined.txt

Этот вариант объединяет все файлы с расширением .txt в all_files_combined.txt.

Практическое применение
1. Лог-файлы: Объединение нескольких логов в один:

cat /var/log/syslog.1 /var/log/syslog.2 > syslogs_combined.log

2. Конфигурационные файлы: Создание общего файла конфигурации:

cat config_part1.conf config_part2.conf > full_config.conf

3. Архивы данных: Объединение частей архивов или дампов БД:

cat backup_part1.sql backup_part2.sql > full_backup.sql


Проверка результата объединения
После выполнения команды можно проверить содержимое объединённого файла командой:

cat result.txt

Или с постраничным просмотром:

less result.txt
3👍1
Примеры скриптов PowerShell для системного администрирования

Управление текущим расположением
Работа с файлами и папками
Работа с файлами, папками и разделами реестра
Работа с записями реестра

https://bookflow.ru/primery-skriptov-powershell-dlya-sistemnogo-administrirovaniya/
1
MikroTik Winbox 4 - Dark Mode активирован🔥

Кроссплатформенная нативная версия для Windows, Mac и Linux

https://mikrotik.com/download
👍21
Основные команды 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 – процессорное время
1
Топ 4 лучших типа сервисов Kubernetes в одной диаграмме.

▪️ ClusterIP
ClusterIP - это стандартный и наиболее распространенный тип службы. Kubernetes назначает сервису ClusterIP внутренний IP-адрес кластера. Это делает службу доступной только в пределах кластера.

▪️ NodePort
Это позволяет вывести сервис за пределы кластера, добавив общекластерный порт поверх ClusterIP. Мы можем запросить сервис по NodeIP:NodePort.

▪️ LoadBalancer
Этот способ раскрывает сервис извне, используя балансировщик нагрузки облачного провайдера.

▪️ ExternalName
Сопоставляет службу с доменным именем. Обычно это используется для создания службы в Kubernetes для представления внешней базы данных.
1
📌 Шпаргалка по Mikrotik RouterOS Console
2
Объединение файлов командой cat

Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.

Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
My text file 1

А в другом:
My text file 2

То после объединения мы получим файл с двумя строками:
My text file 1
My text file 2


То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).

Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:

cat file1 file2 > file12
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:

cat file1 file2 file3 file4 > myfile
1
📌 Шпаргалка по клавиатурным сочетаниям Midnight Commander
4