NetworkAdmin.ru – Telegram
NetworkAdmin.ru
4.75K subscribers
225 photos
25 videos
2 files
497 links
Авторский блог про сетевое и системное администрирование.

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
Понаберут с улицы..

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23😁8🤡63😢2
🖥 Быстрый способ получить информацию об оборудовании в Linux

Среди утилит для сбора информации о железе в Linux dmidecode выделяется особенным подходом:
в отличие от lshw, hwinfo или inxi, она не опрашивает оборудование напрямую, а читает таблицу DMI/SMBIOS, где уже содержится вся нужная информация. Поэтому работает практически мгновенно, без лишней нагрузки.

📦 Часто уже предустановлена во многих дистрибутивах. Устанавливать вручную почти никогда не требуется.

▪️ Как пользоваться. Команда максимально простая. Можно указать тип устройства (по номеру или имени):


# Информация о процессоре
dmidecode -t 4
# или
dmidecode -t processor


📌 Часто используемые ключи:

Тип оборудования Ключ -t

BIOS 0 или bios
Система 1 или system
Материнская плата 2 или baseboard
Корпус 3 или chassis
Процессор 4 или processor
Память 17 или memory
Кэш 7 или cache
Порты, слоты и т.д. 8–9 и выше


▪️ Запрашиваем конкретные параметры. Если нужно получить только конкретные поля - например, модель или частоту процессора:


dmidecode -s processor-version
dmidecode -s processor-frequency


Чтобы увидеть все доступные ключи:


dmidecode -s


🌟 Полезный флаг. Ключ -q (quiet) скрывает лишнюю тех.информацию вроде Handle и мета-описаний:


dmidecode -q -t processor


🌟 Важно: dmidecode корректно работает только на физическом железе. В виртуальных машинах информация может быть неполной или отсутствовать совсем - это зависит от гипервизора и его настроек.

#linux#dmidecode

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
💬 Что скрывает Linux Kernel: модули ядра и их влияние

Ядро Linux - это не монолит, в котором всё скомпилировано раз и навсегда. Оно устроено куда гибче. Большинство драйверов, подсистем и расширений — это загружаемые модули ядра (kernel modules), которые можно подключать и отключать "на лету", без перезагрузки системы.

🌟 Что такое модуль ядра?

Модуль ядра - это объектный файл (.ko), содержащий часть функциональности, которая может быть подключена к ядру динамически. Это может быть драйвер оборудования, файловая система, сетевая функциональность и даже механизмы безопасности (например, AppArmor или SELinux).

▪️ Как посмотреть, какие модули загружены?


lsmod


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

▪️ Как загрузить модуль вручную?


modprobe имя_модуля


Если вы знаете, какой драйвер нужен (например, vfat для FAT-файловых систем), вы можете подгрузить его в ядро прямо во время работы.

▪️ Как выгрузить ненужный модуль?


modprobe -r имя_модуля


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

▪️ Где лежат модули?
Обычно они находятся в /lib/modules/$(uname -r)/kernel/

Можно искать по названию:


find /lib/modules/$(uname -r) -type f -name '*имя*'


▪️ Почему это важно?
Модули ядра напрямую влияют на:

производительность
безопасность
стабильность системы
поддержку "нестандартного" оборудования


#linux #kernel #modules

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🕛 Проблема смены часового пояса в Windows Server 2019/2022

В Windows Server 2019 и 2022 есть неприятная особенность (или всё-таки баг?), из-за которой нельзя изменить часовой пояс через графический интерфейс. Даже с правами администратора попытка изменить настройки через классическую панель (timedate.cpl) или "Параметры" приводит к ошибке о недостатке разрешений.

Решается это просто - через консоль:

С помощью tzutil:


tzutil /s "Russian Standard Time"


Или PowerShell:


Get-TimeZone -ListAvailable | Where-Object DisplayName -like "*Moscow*" | Set-TimeZone


Также можно запустить timedate.cpl с повышенными правами (Run as Administrator) и всё заработает как надо.

#WindowsServer #timezone

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤔1🤡1
Весна, хочется чего-то нового

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁31👍1
📱 Скрипт для анализа занятости места в Linux

Иногда на сервере внезапно заканчивается свободное место - и начинается беготня по командам du, find, lsof, вспоминание синтаксиса и пляски с пайпами. А можно проще. Сохранить себе в закладки bash-скрипт topdiskconsumer, который соберёт всё нужное за тебя.

🌟 Что делает скрипт?

Он запускается из любой директории и автоматически определяет, с какого тома (mount point) нужно искать.

Далее собирает:

Топ-20 самых крупных файлов
Топ-20 самых "тяжёлых" директорий
Топ-20 больших файлов старше 30 дней
Топ-20 удалённых, но не освобождённых файлов (файлы с открытым дескриптором)

🌟 Как это работает?

Скрипт не требует зависимостей, стороннего ПО или установки. Всё - стандартные утилиты: find, du, sort, lsof. Примеры:

▪️ Топ-20 директорий:


du -hcx --max-depth=6 / 2>/dev/null | sort -rh | head -n 20


▪️ Топ-20 файлов:


find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
| sort -rh | head -n 20


▪️ Старые и объёмные:


find / -mount -ignore_readdir_race -type f -mtime +30 -exec du -h "{}" + 2>&1 \
| sort -rh | head -20


🌟 По умолчанию отображается топ-20, но это можно изменить - задать своё значение в переменной intNumFiles в начале скрипта или передать флаг -l.

🌟 Посмотреть доступные опции:


./topdiskconsumer --help


Ссылка на GitHub 📱

#linux #bash

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🫡1
🗂 Ротационные бэкапы с экономией места: rsync + hardlink

На сервере делаются ежедневные резервные копии, но не хочется тратить кучу места на дублирование одних и тех же файлов? Есть отличный способ - использовать rsync с жёсткими ссылками (hardlinks) для дедупликации. Это позволяет хранить полные снепшоты, при этом экономя место.

🌟 Суть подхода

Бэкапы выглядят как отдельные директории (backup-2025-05-13, backup-2025-05-12), но все неизмененные файлы - это просто ссылки на одни и те же иноды.

Если файл не изменился - он физически не дублируется, а просто переиспользуется в новом бэкапе.

▪️ Структура и логика

Пример каталогов:


/backups/
├── daily.0 ← сегодня
├── daily.1 ← вчера
├── daily.2
└── daily.3


daily.0 - свежий бэкап.
daily.1, daily.2, ... - предыдущие снепшоты.

При каждом новом запуске:

старые бэкапы смещаются на +1 (daily.2 → daily.3)
daily.0 создаётся как --link-dest от daily.1

▪️ Скрипт ротационного бэкапа


#!/bin/bash

SRC="/home/user"
DEST="/backups"
MAX=7 # сколько дней хранить

# Сдвигаем старые бэкапы
for ((i=MAX-1; i>=0; i--)); do
if [ -d "$DEST/daily.$i" ]; then
mv "$DEST/daily.$i" "$DEST/daily.$((i+1))"
fi
done

# Создаём новый бэкап с дедупликацией
LINK=""
if [ -d "$DEST/daily.1" ]; then
LINK="--link-dest=$DEST/daily.1"
fi

rsync -aAX --delete $LINK "$SRC/" "$DEST/daily.0"


⭐️ Преимущества

- Каждый бэкап - полный, можно восстановить всё в конкретном состоянии.
- Экономия места - используется только дополнительное место для новых/изменённых файлов.
- Простота восстановления: rsync обратно или просто cp.


#linux #backup

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Интимная обстановка 🔞

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52🤔3😱21👍1
👩‍💻 Как развернуть Kubernetes-кластер на bare-metal сервере

Если облако не ваш выбор, а хочется полного контроля над железом - Kubernetes на bare-metal отличный вариант. В этом посте будет описан базовый путь, как развернуть свой кластер на физических серверах с нуля.

⭐️ Что потребуется:

Один мастер-узел (control plane)
Один или более worker-узлов
Ubuntu Server 22.04+ (или другой поддерживаемый дистрибутив)
Сеть с доступом между узлами (ssh + порты k8s)
root или sudo-доступ


1️⃣ Подготовка ОС. На всех узлах:


sudo apt update && sudo apt upgrade -y
sudo apt install -y curl apt-transport-https ca-certificates software-properties-common


Выключаем swap (Kubernetes его не любит):


sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab


2️⃣ Установка container runtime (например, containerd)


sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo systemctl restart containerd


3️⃣ Установка kubeadm, kubelet и kubectl


curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
sudo apt update
sudo apt install -y kubeadm kubelet kubectl
sudo apt-mark hold kubeadm kubelet kubectl


4️⃣Инициализация мастер-узла. На мастер-ноде:


sudo kubeadm init --pod-network-cidr=10.244.0.0/16


После успешной инициализации:


mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


5️⃣ Установка сетевого плагина (например, Flannel)


kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml


6️⃣ Подключение worker-нод. На каждом worker-узле выполните команду, которую выдал kubeadm init, например:


sudo kubeadm join 192.168.0.10:6443 --token abcdef.1234567890abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


▪️ Проверка статуса кластера. На мастер-ноде:


kubectl get nodes
kubectl get pods --all-namespaces


#kubernetes #baremetal

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9🔥21
Развёртывание Linux по сети с PXE

Когда нужно установить Linux на множество серверов или ПК без USB-флешек и дисков, на помощь приходит PXE (Preboot Execution Environment) - загрузка ОС по сети. PXE позволяет запустить установщик Linux прямо из сети, что особенно удобно в дата-центрах, офисах и лабораториях.

🌟 Как это работает?

Компьютер включается и запрашивает сетевой загрузчик по DHCP.
Сервер отвечает и передаёт загрузочный образ через TFTP.
Клиент загружает ядро Linux и переходит к установке системы.


🌟 Что нужно для развертывания PXE?

DHCP-сервер (для раздачи PXE-загрузчика)
TFTP-сервер (для передачи загрузочных файлов)
HTTP/NFS-сервер (для хранения установочных файлов)


1️⃣ Устанавливаем нужные пакеты. На PXE-сервере установим DHCP, TFTP и Apache (для раздачи образов):


sudo apt update && sudo apt install isc-dhcp-server tftpd-hpa apache2


2️⃣ Настраиваем DHCP для PXE. Редактируем /etc/dhcp/dhcpd.conf:


subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
next-server 192.168.1.10; # PXE-сервер
filename "pxelinux.0";
}


Перезапускаем DHCP:


sudo systemctl restart isc-dhcp-server


3️⃣ Настраиваем TFTP-сервер. Указываем папку для загрузки PXE-файлов в /etc/default/tftpd-hpa:


TFTP_DIRECTORY="/srv/tftp"
TFTP_OPTIONS="--secure"


Перезапускаем:


sudo systemctl restart tftpd-hpa


4️⃣ Загружаем PXELINUX. Скачиваем файлы для PXE:


sudo mkdir -p /srv/tftp
cd /srv/tftp
sudo apt install syslinux pxelinux
sudo cp /usr/lib/PXELINUX/pxelinux.0 .
sudo cp /usr/lib/syslinux/modules/bios/* .


Создаём каталог для меню:


mkdir -p /srv/tftp/pxelinux.cfg


5️⃣ Создаём загрузочное меню PXE. Создаём файл /srv/tftp/pxelinux.cfg/default:


DEFAULT menu.c32
PROMPT 0
TIMEOUT 100
ONTIMEOUT install

LABEL install
MENU LABEL Install Ubuntu 22.04
KERNEL ubuntu/vmlinuz
APPEND initrd=ubuntu/initrd.gz netboot=http://192.168.1.10/ubuntu/


6️⃣ Готовим установочные файлы. Загружаем образы на веб-сервер:


sudo mkdir -p /var/www/html/ubuntu
cd /var/www/html/ubuntu
wget http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar -xzf netboot.tar.gz


Перезапускаем Apache:


sudo systemctl restart apache2


7️⃣ Запускаем установку по сети. Теперь включаем клиентский компьютер, в BIOS включаем PXE-загрузку и выбираем сетевой интерфейс в качестве загрузочного устройства.

Клиент загрузится и начнёт установку Linux прямо из сети.

#linux #install

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎1🔥1
📈 Тестируем пропускную способность сети

До сих пор не знаете о iperf? Одном из самых популярных инструментов для измерения пропускной способности сети. Iperf - это кроссплатформенная утилита, работающая в режиме клиент-сервер. Вы можете запустить сервер на Linux и тестировать подключение с Windows, Android и наоборот. При запуске выбирается один из режимов:

Сервер: принимает подключения
Клиент: инициирует тестирование

⚙️ Установка и запуск

📱 На Linux:


apt install iperf3
iperf3 -s


По умолчанию сервер слушает порт 5201 TCP — не забудьте открыть его в файрволле.

🏠 На Windows:


winget install iperf3


Для любителей графики есть GUI-приложение на основе iperf, но для оригинальной консольной версии лучше скачать архив с официального сайта.

▪️ Запуск теста с клиента:


iperf3 -c <IP-адрес сервера>


Результаты теста отобразятся прямо в консоли в удобном формате.

▪️ Логирование и интеграция с мониторингом. Iperf поддерживает вывод логов, в том числе в формате JSON:


iperf3 -c <IP> --logfile log.txt -J


Эти данные можно потом обрабатывать через любую систему мониторинга.

⭐️ тесты iperf создают реальную нагрузку на канал. Во время замеров может страдать работа сервисов, поэтому в продакшене применять с осторожностью. Также при автоматизации тестов стоит помнить: приоритизация трафика исказит реальную картину.

▪️ Полезные параметры iperf3

1️⃣ Изменить продолжительность теста (по умолчанию 10 секунд):


iperf3 -c <IP> -t 60


2️⃣ Передать заданный объём данных вместо ограничения по времени:


iperf3 -c <IP> -n 100M


3️⃣ Запустить тест в несколько потоков для более полного использования канала:


iperf3 -c <IP> -P 4


Параметры одинаково работают на всех платформах. Вы можете поднять сервер на Windows и тестировать подключение с Linux - и наоборот.

#iperf #networktools

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🛡 Безопасный запуск подозрительных файлов: Windows Sandbox и Hyper-V

Приходит странный .exe в письме, скачали скрипт с форума, нужно проверить .bat - но лезть в боевую систему страшно? Windows уже давно предлагает удобные инструменты для таких задач: Windows Sandbox и Hyper-V.

Windows Sandbox - это изолированная среда, встроенная в Windows 10/11 Pro и Enterprise, запускаемая как обычное приложение. Каждая сессия создаёт чистую виртуальную Windows, которая полностью удаляется при закрытии. Идеально для тестирования вредоносных или сомнительных файлов.

▪️ Активация:


Панель управления → Программы → Включение компонентов Windows → Windows Sandbox


▪️ Особенности:

– Не требует настройки
– Работает поверх Hyper-V
– Доступ к сети (опционально)
– Поддержка копипаста между хостом и Sandbox
– Можно запускать EXE, MSI, BAT, PowerShell-файлы
– Всё, что вы сделали, исчезает после выхода из песочницы


Пример: получили подозрительный .exe? Копируете его в Sandbox, запускаете и смотрите поведение - система хоста в полной безопасности.

▪️ Кастомизация

Можно создавать .wsb-файлы для кастомных сессий. Пример конфигурации:


<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\test</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<Networking>Disable</Networking>
<LogonCommand>
<Command>explorer.exe</Command>
</LogonCommand>
</Configuration>


🌟 А если нужно больше контроля? Используйте Hyper-V

Hyper-V - полноценная система виртуализации. Позволяет запускать полноценные виртуалки с Windows или Linux, делать снапшоты, настраивать сеть, симулировать заражения. Подходит для постоянных стендов, C2-серверов, песочниц под малварь.

#windows #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
🔓 Как защититься от MAC-спуфинга и ARP-атак в сети?

Локальные сети уязвимы к атакам, основанным на подмене MAC-адресов и ARP-ответов. Это позволяет злоумышленнику внедриться в трафик, перехватить сессии, пароли, или даже организовать MITM-атаку. Разберёмся, как это работает и как защититься.

MAC-спуфинг - изменение MAC-адреса устройства для подделки идентичности в сети (например, чтобы обойти фильтрацию или перехватить чужой IP).

ARP-спуфинг - атака, при которой злоумышленник отправляет поддельные ARP-ответы, перенаправляя трафик жертвы на себя.

▪️ Пример: ПК «думает», что MAC-адрес шлюза принадлежит атакующему. Всё, что идёт в интернет, сначала попадает к злоумышленнику.

▪️Как защититься?

1️⃣ Использовать статические ARP-записи. Особенно на критичных устройствах (серверы, шлюзы). Например:


arp -s 192.168.1.1 00:11:22:33:44:55


2️⃣ Включить динамическое обнаружение ARP-атаки. Многие коммутаторы и firewall (например, Mikrotik, Cisco, pfSense) поддерживают ARP Watch или ARP Inspection.

3️⃣ Включить DHCP Snooping + Dynamic ARP Inspection (DAI). Работает на уровнях доступа: фильтрует поддельные ARP-пакеты.

4️⃣ Фиксировать MAC-адреса вручную (Port Security). Ограничьте количество MAC-адресов на порту и задайте статические.

5️⃣ Мониторинг ARP-таблицы. Утилиты arpwatch, arping, ettercap или Wireshark помогут выявить подозрительные изменения.

6️⃣ Шифровать трафик. Используйте HTTPS, SSH, VPN — даже если ARP-спуфинг произойдёт, трафик будет зашифрован.

#networksecurity #macspoofing

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🌐 Microsoft Network Monitor: захват и анализ сетевого трафика в Windows

Network Monitor - бесплатная утилита от Microsoft для захвата сетевого трафика. Несмотря на отсутствие обновлений, инструмент отлично подходит для диагностики на серверах и рабочих станциях.

⚙️ Установка:


winget install Microsoft.NetMon


Или скачайте с официального сайта Microsoft.

▪️ Быстрый старт:

- Запустите от администратора.
- Создайте новую сессию (New Capture → Capture Settings).
- Выберите профиль парсера Windows.
- Нажмите Start для начала захвата.

▪️ Примеры фильтров:

Перехват SMTP-трафика:


TCP.Port == 25 or TCP.Port == 465 or TCP.Port == 587


Трафик к определенному IP:


IPv4.Address == 192.168.1.100


Захват только HTTP-запросов:


HTTP.Request


Хороший инструмент для локального аудита сетевых соединений без сложных настроек.

#networktools

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
This media is not supported in your browser
VIEW IN TELEGRAM
Сразу видно, мастер своего дела

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁34👍6😱31💩1
Traceroute, Tracert и Tracepath - в чём разница и что выбрать

Когда нужно быстро определить маршрут до хоста, используются утилиты трассировки: traceroute, tracert и tracepath. Все они работают схожим образом - отправляют пакеты с увеличивающимся TTL и фиксируют ответы от промежуточных узлов. Но есть важные отличия.

▪️ traceroute (Linux). По умолчанию использует UDP, но можно переключиться на ICMP:


traceroute networkadmin.ru # UDP
traceroute -I networkadmin.ru # ICMP


UDP-пакеты могут блокироваться, и вы не получите ответ. Поэтому ICMP часто предпочтительнее в реальных условиях.

▪️ tracert (Windows). Использует только ICMP, без возможности выбора. Удобен и прост, но менее гибок.

▪️ tracepath (Linux). Аналог traceroute, тоже использует UDP, но дополнительно показывает MTU на каждом участке маршрута. Очень полезно при диагностике проблем с фрагментацией, особенно в VPN и туннелях.

🌟 Что выбрать?

- Если нужна универсальность и вы работаете в Linux - используйте traceroute -I.
- Если нужна информация о MTU - tracepath.
- В Windows - только tracert, но ICMP чаще проходит успешно.

#networktools

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🖼️ Отправка сообщений в WhatsApp из скрипта

Пост для тех, кому необходимо интегрировать отправку уведомлений в WhatsApp прямо из скрипта. Отличным решением будет Mudslide - консольный клиент, построенный на Node.js и библиотеке Baileys, работающий через API WhatsApp Web.

⚙️ Установка:


npm install -g mudslide


Или загрузите готовый бинарник для Windows/Linux.

▪️ Авторизация:


npx mudslide login


Сканируйте QR-код в WhatsApp - и вы в системе.

▪️ Примеры команд:


mudslide send 79123456789 "Привет"
mudslide send-image 79123456789 ./image.jpg
mudslide send-file me ./doc.pdf
mudslide send-location me 55.752121 37.617664


Инструмент удобно использовать в автоматизации, мониторинге и оповещениях.

#whatsapp

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Успех гарантирован

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29👍6🤡41👎1
⛔️ Ограничиваем ресурсы в Linux

Control Groups (или просто cgroups) - это фича ядра Linux, позволяющая ограничивать ресурсы, выделенные для процессов: CPU, память, диск, сеть и т.д.

⭐️ Пример: вы хотите, чтобы процесс stress не съедал всю память и CPU:


# Создаём cgroup
sudo cgcreate -g memory,cpu:/limitgroup

# Ограничим память до 500MB
sudo cgset -r memory.limit_in_bytes=$((500*1024*1024)) limitgroup

# Ограничим CPU (50% одного ядра)
sudo cgset -r cpu.cfs_quota_us=50000 limitgroup
sudo cgset -r cpu.cfs_period_us=100000 limitgroup

# Запускаем процесс внутри cgroup
sudo cgexec -g memory,cpu:/limitgroup stress --vm 1 --vm-bytes 700M --cpu 1


Процесс превысит лимит - будет убит OOM-килером.
Все параметры и статистику можно смотреть в /sys/fs/cgroup/.

#linux #cgroups

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
👀 Диагностика сетевых проблем с mtr и ss

🌟 mtr (My Traceroute) - сочетает ping и traceroute, выводит маршрут и потери пакетов до цели. Очень наглядно показывает, где в пути начинается деградация.

▪️ Пример:


mtr -rw -c 50 8.8.8.8


Покажет 50 запросов, каждый hop, потери (%) и задержку (ms).
Если видите 30–50% потерь на каком-то промежуточном IP - скорее всего, это и есть проблемный участок.

🌟 ss (socket statistics) - замена netstat. Помогает найти открытые порты, "зависшие" соединения и выяснить, какой процесс что слушает.

▪️ Примеры:

1️⃣ Просмотр всех TCP/UDP портов с PID:


ss -tulpn


2️⃣ Кто держит порт 443:


ss -ltnp | grep ':443'


3️⃣ Зависшие соединения в состоянии CLOSE-WAIT:


ss -tan state close-wait


⭐️ Сценарий диагностики:

1. Сначала mtr до внешнего хоста - проверка трассировки и потерь.
2. Потом ss - смотрим, что на машине: может, переполнен backlog, слушающий порт не отвечает или слишком много соединений.


#mtr #ss #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
💬 Зачем столько каталогов с бинарниками в Unix

Вы когда-нибудь задумывались, почему в Unix-подобных системах столько директорий для исполняемых файлов? Почему mount в /bin, а htop в /usr/bin, а свои скрипты многие кладут в /usr/local/bin?

⭐️ Быстрый разбор:

/bin - базовые утилиты, которые нужны системе для загрузки и восстановления (например, cp, ls, mount).

/sbin - то же, что /bin, но для системного администрирования (fsck, reboot, iptables).

/usr/bin - всё остальное: утилиты для обычной работы пользователей (vim, git, curl).

/usr/sbin - админ-инструменты, не нужные на этапе загрузки (apache2, sshd, postfix).

/usr/local/bin и /usr/local/sbin - то, что вы ставите вручную, не через пакетный менеджер. Сюда удобно кидать своё ПО и скрипты, чтобы не мешать системным файлам.


📜 Интересный факт: всё это уходит корнями в 70-е. Тогда у разработчиков Unix не хватало места на одном диске, и они добавили второй, назвав его /usr. На него перенесли часть системы, включая bin и sbin. Так и появилась современная иерархия.

🌟 Сейчас в большинстве дистрибутивов /bin и /sbin - это просто символические ссылки на /usr/bin и /usr/sbin. Например, в Debian 11 и Fedora всё давно живёт в /usr.

Иерархия стала анахронизмом, но сохраняется ради совместимости. Логичнее было бы всё централизовать, а смысловое разделение оставить только между системным (/usr) и пользовательским (/usr/local) ПО.

⚡️ Совет: пользуйтесь /usr/local/bin для собственных скриптов и утилит - это хорошая практика.

#linux #unix

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍213