Админские угодья
1.58K subscribers
546 photos
44 videos
244 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
📌 Шпаргалка по оконным функциям в SQL
1👍1
📌 Шпаргалка по редиректам командной строки Linux
11
20 команд мониторинга Linux, которые вы должны знать

Если вы работаете системным администратором / администратором Linux / DevOps / SRE, то, скорее всего, вам придется решать проблемы, связанные с производительностью, в среде Linux.

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

1. Top
2. vmstat
3. iostat
4. iostat-d
5. lsof
6. tcpdump
8. netstat-s
9. ps -ef |grep PID
10. nethogs
11. mpstat
12. free-m
13. uptime
14. ps -e
15. ac
16. ac-d
17. ac -p
18. vmstat-m
19. vmstat–d
20. pstree

Статья
4👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
duf - дисковая утилита для Linux, BSD, macOS и Windows

Мы используем команду df, чтобы показать, сколько свободного места на диске доступно на смонтированных файловых системах в Linux, macOS и подобных Unix системах. Также у нас есть команда du для оценки использования дискового пространства файлами. Теперь у нас появился новый, стильный и функциональный инструмент под названием duf, который отображает статистику свободного дискового пространства в Unix, Linux, macOS, *BSD, Android и Windows. Этот инструмент написан на языке Go.

https://www.cyberciti.biz/open-source/command-line-hacks/duf-disk-usage-free-utility-for-linux-bsd-macos-windows/
👍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 — посмотреть список используемых портов
2
Iptables-tracer

Утилита, позволяющая отследить путь прохождения пакетов через цепочки iptables на сервере.
Инструмент пришёл на помощь в ситуации, когда появилась необходимость увидеть, проходит ли трафик через нужные цепочки iptables.

Установка и сборка.
Здесь ничего сложного. Нам потребуются git и go в системе. Устанавливаем всё необходимое и собираем.
Результатом сборки будет бинарный файл iptables-tracer в директории.


# dnf install git go
# git clone https://github.com/x-way/iptables-tracer
# cd ./iptables-tracer/
# go build



Использование.
Важно понимать, что при остановке iptables-tracer (запущенного с параметрами или без), созданные правила удалены не будут, это нужно сделать самостоятельно, выполнив команду с аргументом -с:


# ./iptables-tracer -c


Будучи запущенным без каких-либо аргументов, трейсер будет выводить информацию о udp трафике имеющем dport 53.

# ./iptables-tracer
12:36:02.455805 raw OUTPUT 0x00000000 0x00000000 IP 95.216.163.224.33873 > 185.12.64.1.53: 21597+ A? sysadmin.pm. (29) [In: Out:eth0]
...
12:36:02.456483 raw OUTPUT 0x00000000 0x00000000 IP 95.216.163.224.33873 > 185.12.64.1.53: 61055+ AAAA? sysadmin.pm. (29) [In: Out:eth0]


При этом, в списке правил iptables можно увидеть следующее:

# iptables-save | grep nflog
-A PREROUTING -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:0" --nflog-group 22
-A INPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:1" --nflog-group 22
-A OUTPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:2" --nflog-group 22
...
-A OUTPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:13" --nflog-group 22



При необходимости, мы можем отфильтровать только нужный нам трафик с помощью параметра -f и уже знакомого нам iptables синтаксиса. Например, отобразить информацию о трафике, поступающем с IP адреса 5.189.221.98 на порт 22. С помощью параметра -t мы указываем время в течение которого информация будет проверяться:

# ./iptables-tracer -f "-s 5.189.221.98 -p tcp --dport 22" -t 90s

12:50:27.599117 raw PREROUTING 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.599259 mangle PREROUTING 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.599870 mangle INPUT 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.600005 filter INPUT 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]


https://github.com/x-way/iptables-tracer
2👍1
Подборка Linux утилит для системного администратора

Nezha - Легкий и элегантный аналог Zabbix
Plow - Этот инструмент был разработан для проведения нагрузочного тестирования HTTP
Hunt - Утилита для поиска файлов на локальном компьютере
AutoRegex - Регулярные выражения — это мощный инструмент для преобразования текстовых данных.
ContainerSSH - Утилита, которая позволяет вам незаметно направлять SSH-клиентов в изолированные контейнеры
Krunvm - Это инструмент, который позволяет создавать простые виртуальные машины на основе образов OCI.
Zellij - Это интересный мультиплексор, который может быть использован в качестве альтернативы tmux

https://bookflow.ru/podborka-linux-utilit-dlya-sistemnogo-administratora/
2🔥2
📌 Таблица масок подсети
5
Шпаргалка по Linux systemd

Systemd - это набор основных строительных блоков для системы Linux
3
Шпаргалка по RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
df -hT - свободное место, тип файловой системы, точки монтирования

Сборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.

Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /etc/fstab, прописать /dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузки

Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный диск
mdadm /dev/md0 —add /dev/sde - добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления

Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобрать

Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массиву

Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sde

mdadm -G /dev/md0 —raid-devices=3 - расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.

Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadm

Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:

umount /mnt
* где /mnt — каталог монтирования нашего RAID.

mdadm -S /dev/md0

Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
👍31