Большинство используют tcpdump как "посмотреть весь трафик на 80 порт". Но настоящая сила в BPF-фильтрах. Правильный фильтр = меньше шума, быстрее диагностика и меньше нагрузки на сервер. Небольшая шпаргалка фильтров, которые реально пригождаются.
tcpdump -i eth0 host 10.10.10.5 and port 443
Когда нужно понять, что происходит между двумя узлами.
Исходящий:
tcpdump -i eth0 src host 192.168.1.10
Входящий:
tcpdump -i eth0 dst host 192.168.1.10
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
Подойдет для: выявления сканирования, анализа всплеска подключений, диагностики DoS
Только SYN без ACK:
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'
tcpdump -i eth0 not port 22
Или исключить конкретную подсеть:
tcpdump -i eth0 not net 10.0.0.0/8
tcpdump -i eth0 'tcp[tcpflags] & tcp-rst != 0'
Помогает понять, кто рвет соединения: сервер, клиент или firewall.
tcpdump -nn -i eth0 tcp
Дальше анализ через Wireshark или tcptrace.
tcpdump -i eth0 -A -s 0 'tcp port 80'
-A - показать ASCII-s 0 - не обрезать пакетыМожно сразу фильтровать по методу:
tcpdump -i eth0 -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]>>4)<<2)) != 0)'
(когда нужно видеть payload, а не только заголовки)
tcpdump -i eth0 -w dump.pcap
С ограничением по размеру:
tcpdump -i eth0 -C 100 -W 5 -w dump.pcap
Это создаст ротацию файлов по 100MB (до 5 файлов).
tcpdump -i eth0 port 53
Только большие ответы:
tcpdump -i eth0 'udp port 53 and greater 512'
Часто помогает при подозрении на туннелирование через DNS.
#linux #tcpdump
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤2
На всех linux-серверах, которые необходимо настроить или с которыми предстоит плотно поработать, первым делом стоит задуматься про историю команд. Т.к я часто пользуюсь history, поэтому важно, чтобы команды: сохранялись сразу, хранились долго, были с таймстампами и не засорялись мусором. Обычно добавляю все в
~/.bashrc.
PROMPT_COMMAND='history -a'
history -a сохраняет команды текущей сессии в файл перед каждым выводом приглашения.
export HISTTIMEFORMAT='%F %T '
Формат будет таким:
2026-03-31 12:20:30 apt install nginx
export HISTSIZE=10000
Теперь в лимит не упретесь 🙂
export HISTIGNORE="ls:history:w:htop:pwd:top:iftop"
Список можно адаптировать под себя.
export HISTCONTROL=ignorespace
Теперь команда, введенная с пробела, не будет сохранена.
source ~/.bashrc
export | grep -i hist
Если хотите применить настройки ко всем пользователям, для этого создайте файл, например:
/etc/profile.d/history.sh
Скрипты оттуда выполняются при запуске shell.
Стандартный способ -
Ctrl + R.Нажимаете и начинаете вводить команду. Повторное
Ctrl + R - следующий результат.Я чаще делаю так:
history | grep 'apt install'
Сразу видно все и можно быстро скопировать нужную строку.
#linux #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Если нужно оперативно прикинуть пропускную способность канала между двумя Linux-машинами, можно обойтись без установки
iperf. Достаточно netcat, который в большинстве дистрибутивов уже есть.Допустим, есть сервер 10.25.1.157.
На нем запускаем слушатель:
nc -lvp 5201 > /dev/null
На второй машине отправляем 100 МБ нулевых данных (10 блоков по 10 МБ):
dd if=/dev/zero bs=10M count=10 | nc 10.25.1.157 5201
dd покажет скорость передачи - это и будет приблизительная оценка ширины канала.
Если сравнить результаты
netcat и iperf3, получается интересная картина:До 1 Gbit/sec показатели практически совпадают (разница в пределах погрешности).
Для обычных VPS и типичных серверных подключений - способ вполне рабочий.
Для быстрой диагностики, более чем достаточно.
Можно смело использовать
netcat, если нужно быстро понять: канал живой и дает ли он заявленную скорость.При тестах в виртуальной среде:
iperf3 показывал около 15 Gbit/sec
netcat - примерно 4 Gbit/sec
при этом гипервизор заявлял бридж на 10 Gbit/sec
Разброс серьезный. Почему так происходит:
netcat не оптимизирован под high-performance тестированиенет тонкой настройки TCP-параметров
влияет размер буферов
влияет CPU и обработка в user-space
виртуальная сеть дает свою специфику
В таких сценариях уже сложно сказать, кто ближе к истине. Корректный замер реальной скорости требует учета множества факторов: MTU, offload, congestion control, NUMA, CPU pinning и т.д.
#networking #netcat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2
В Ansible многие используют facts только для базовых вещей:
ansible_os_family, ansible_hostname, ansible_default_ipv4. Но механизм фактов куда мощнее, если копнуть глубже, можно строить динамичную и умную автоматизацию.
- hosts: all
gather_facts: false
А если нужны только сетевые:
- hosts: all
gather_facts: true
gather_subset:
- network
Это особенно заметно в больших инфраструктурах.
- name: Install qemu tools
package:
name: qemu-guest-agent
state: present
when: ansible_virtualization_type == "kvm"```yaml
Или автоматический выбор пакетов по версии ОС:
```yaml
when: ansible_distribution_major_version | int >= 9
Создаем на хосте файл:
/etc/ansible/facts.d/app.fact
Пример содержимого (JSON):
{
"role": "backend",
"env": "prod"
}
После этого факты будут доступны как:
ansible_local.app.role
ansible_local.app.env
Теперь сервер сам знает, кто он, а плейбук просто реагирует.
- set_fact:
is_prod: "{{ 'prod' in inventory_hostname }}"
И дальше использовать:
when: is_prod
Важно помнить: set_fact живет в рамках хоста и текущего play.
- name: Get DB IP
command: hostname -I
register: db_ip
delegate_to: db01
run_once: true
Теперь можно передать IP в шаблон для backend-серверов.
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts_cache
fact_caching_timeout = 86400
если есть второй диск, то настраиваем RAID
если RAM > 16GB, то увеличиваем worker-пулы
если это VM, то отключаем tuned-профили для bare metal
Пример:
when: ansible_memtotal_mb > 16000
#ansible #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Иногда прод падает не из-за zero-day, не из-за DDoS и не из-за кривого кода. Иногда его кладет… обычный rsync.
прод-сервер
staging
cron-задача синхронизации
и уверенность «я же сто раз так делал»
Команда выглядела примерно так:
rsync -av --delete /data/ backup@storage:/prod-data/
Или еще лучше:
rsync -av --delete /data/ /mnt/nfs/prod/
Все работало годами. Пока однажды:
/data не примонтировалсяNFS отвалился
переменная с путем оказалась пустой
кто-то перепутал source и destination
И rsync честно сделал то, что должен был сделать.
С --delete.
Особенно опасные кейсы:
/data - пустая локальная папкаrsync --delete удаляет все на целевом хранилище.
SRC=""
rsync -av --delete $SRC /backup/
Подставится / или текущая директория. И дальше - лотерея.
rsync -av --delete backup:/data/ /data/
Удаляем прод, потому что backup оказался пустым.
inode удаляются
файловая система занята
приложения падают
БД начинают ругаться
контейнеры теряют volume
А вы смотрите на логи и видите, как rsync методично чистит прод.
rsync -av --delete --dry-run ...
Если видите тысячи deleting - остановитесь.
mountpoint -q /data || exit 1
--max-delete=100
Если удалений больше - rsync аварийно завершится.
LVM, ZFS, btrfs - спасают карьеры.
Бэкап не должен иметь права удалять прод-данные.
#linux #rsync
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😱1
Знакомая ситуация: приложение держит постоянное TCP-соединение (к БД, API, брокеру), все работает… а потом внезапно «connection reset» или таймаут. Особенно часто это происходит через 5–30 минут простоя. Причина обычно не в приложении, а в сети.
Между клиентом и сервером почти всегда есть:
NAT
firewall
балансировщик
облачный LB
Эти устройства хранят таблицы состояний соединений. Если трафика нет - запись удаляется. Со стороны приложения соединение живое, но по факту его уже нет.
TCP keepalive - это механизм, при котором стек TCP периодически отправляет служебные пакеты, чтобы подтвердить, что соединение ещё активно.
По умолчанию в Linux:
tcp_keepalive_time = 7200 (2 часа!)
tcp_keepalive_intvl = 75
tcp_keepalive_probes = 9
Для современных инфраструктур это слишком долго - NAT обычно живет 300–900 секунд.
sysctl -w net.ipv4.tcp_keepalive_time=300
sysctl -w net.ipv4.tcp_keepalive_intvl=30
sysctl -w net.ipv4.tcp_keepalive_probes=5
Теперь проверка пойдет через 5 минут простоя, а не через 2 часа.
#linux #networking
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Файловая система Btrfs умеет делать снапшоты - мгновенные снимки состояния файловой системы. Это позволяет быстро откатывать систему или данные назад без использования LVM, внешних бэкапов или сложных схем.
Снапшоты в Btrfs работают по принципу Copy-on-Write (CoW): данные не копируются сразу. Создается только метаданные-ссылка на текущие блоки. Реальное место начинает занимать только то, что изменяется после создания снимка.
btrfs subvolume create /data
btrfs subvolume snapshot /data /data_snapshot
Это занимает доли секунды независимо от размера данных.
Можно сделать snapshot только для чтения:
btrfs subvolume snapshot -r /data /snapshots/data_2026-04-20
btrfs subvolume list /
btrfs subvolume delete /data
И возвращаем snapshot:
btrfs subvolume snapshot /snapshots/data_2026-04-20 /data
Система или сервис сразу получают прежнее состояние файлов.
снапшот не является полноценным Бэконом
повреждение диска уничтожит и данные, и снапшоты
для защиты данных используйте отдельные бэкапы (например restic или borg)
#linux #btrfs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🤡1
Инструмент незаменимый, возможностей у него огромное количество, но на практике чаще всего хватает небольшого набора команд. Ниже краткая шпаргалка из того, что реально используется в работе.
-nn, чтобы tcpdump не резолвил IP-адреса в домены и не подменял номера портов именами сервисов. В отладке это только мешает.
tcpdump -D
Если запускать tcpdump без параметров, он будет слушать первый активный интерфейс из списка.
tcpdump -nn -i any
Или конкретный:
tcpdump -nn -i eth0
tcpdump -nn -i any not port 22
Или наоборот смотреть только нужный порт:
tcpdump -nn -i any port 443
tcpdump -nn dst 1.1.1.1
Несколько адресов:
tcpdump -nn dst 1.1.1.1 or dst 9.9.9.9
Комбинация адреса и порта:
tcpdump -nn dst 1.1.1.1 and port 443
Фильтры можно комбинировать через and / or / not.
tcpdump -nn -i any arp
Или исключить его:
tcpdump -nn -i any not arp
tcpdump -nn -i any > ~/traffic.log
tcpdump -nn -i tun0 src 10.10.0.25 and dst 10.10.0.5 and port 443
Несмотря на пугающий вывод, tcpdump довольно простой инструмент.
Чаще всего достаточно увидеть строки вроде:
IP 10.0.0.12.53422 > 10.0.0.5.443
Где указаны источник, порт, получатель и порт назначения. Этого уже хватает, чтобы понять, что происходит в сети.
#network #tcpdump
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Многие привыкли к тому, что лимиты CPU и памяти - это что-то из мира docker и k8s. Но на самом деле механизм один и тот же:
cgroups. И если у вас обычный linux-сервер без контейнеров, вы все равно можете жестко ограничивать ресурсы для systemd-сервисов.Это удобно, когда один процесс начинает съедать всю память, душить CPU или мешать остальным сервисам на хосте.
В современных дистрибутивах используется cgroups v2, а systemd умеет работать с ним из коробки.
Память. Чтобы сервис не выедал весь RAM и не отправлял сервер в OOM.
CPU. Чтобы процесс не занимал все ядра и не мешал соседям.
Число процессов. Чтобы защититься от fork-бомб и неконтролируемого роста дочерних процессов.
systemctl edit myapp.service
Добавим:
[Service]
MemoryMax=500M
CPUQuota=50%
TasksMax=200
MemoryMax=500M - сервис не сможет использовать больше 500 МБ памятиCPUQuota=50% - максимум половина одного CPUTasksMax=200 - не более 200 процессов/потоковПосле этого применяем изменения:
systemctl daemon-reload
systemctl restart myapp.service
Проверить лимиты можно так:
systemctl show myapp.service | grep -E "MemoryMax|CPUQuota|TasksMax"
Или посмотреть, в какой cgroup живет процесс:
systemctl status myapp.service
Если хотите ограничить уже запущенный сервис без ручного редактирования unit-файла, можно использовать runtime-свойства:
systemctl set-property myapp.service MemoryMax=300M CPUQuota=25%
Это удобно для быстрого придушивания прожорливого процесса на боевом сервере.
[Service]
MemoryHigh=400M
MemoryMax=500M
CPUWeight=200
IOWeight=200
Тут разница такая:
MemoryHigh - мягкий порог, после которого ядро начинает сильнее давить процесс по памятиMemoryMax - жесткий пределCPUWeight - относительный приоритет по CPU среди других cgroupIOWeight - относительный приоритет по дисковому I/OCPUQuota=50% - это не половина всех ядер, а квота CPU-времени. На многоядерных системах поведение нужно понимать внимательно.
И еще: если сервис уже упирается в лимит памяти, он может начать падать, а не магически оптимизироваться. Лимиты защищают систему, но не исправляют плохое приложение.
#systemd #cgroups
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Когда речь заходит о файловой системе на Windows Server, многие смотрят на ReFS как на новый NTFS. Но в реальной эксплуатации все не так просто.
NTFS - это универсальный и самый совместимый вариант.
ReFS - это специализированный инструмент под определенные сценарии, а не замена везде и для всего. Microsoft прямо позиционирует NTFS как файловую систему по умолчанию, а ReFS - как вариант для задач, где важны целостность данных, масштабирование и отдельные storage-оптимизации.
Но вот где начинается практика.
У него до сих пор не такая универсальная совместимость, как у NTFS. Для части сценариев microsoft сама рекомендует NTFS: например, SAN-тома в Failover Cluster обычно форматируют в NTFS, а для Azure File Sync серверный endpoint вообще поддерживается только на NTFS. Для S2D/Storage Spaces Direct, наоборот, ReFS - рекомендуемый вариант.
То есть выбор обычно выглядит так:
#windowsserver #refs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16❤3💩2
Теория без практики - не даст большого результата. Наткнулся на hands-on челлендж:
В кластере есть Pod, который не может нормально стартануть.
Он пытается подняться, но постоянно падает.
Причина: в спецификацию недавно добавили новый контейнер, и после этого init-последовательность стала некорректной.
Задачей является найти, что именно сломали, и починить, чтобы Pod снова запускался.
Внутри будет:
Ссылка
#kubernetes #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Если обратиться к Nginx-серверу по IP-адресу, а не по доменному имени, то обычно откроется либо первый virtual host в конфиге, либо тот, где указан default_server в listen. Чаще всего показывать что-то реальное на таком запросе не хочется, поэтому на IP обычно вешают заглушку.
server {
listen 80 default_server;
server_name _;
return 404;
}
С обычным HTTP все понятно.
server {
listen 443 ssl default_server;
server_name _;
return 404;
}
не решает проблему полностью.
Что увидит пользователь: сначала предупреждение браузера о том, что сертификат не соответствует адресу, а потом, если продолжить, в сертификате можно будет увидеть домен реального сайта
Получается, что даже заглушка на IP все равно может засветить боевой домен.
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/nginx/certs/nginx.key \
-out /etc/nginx/certs/nginx.crt
И подключаем в default server:
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /etc/nginx/certs/nginx.crt;
ssl_certificate_key /etc/nginx/certs/nginx.key;
return 404;
}
Такой подход уже лучше: реальные домены не светятся, но браузер все равно покажет предупреждение о недоверенном сертификате.
Для многих этого достаточно. Я и сам долго делал именно так. Но есть более аккуратный вариант:
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_reject_handshake on;
return 404;
}
Здесь ключевая директива -
ssl_reject_handshake on.Она позволяет сразу отклонять TLS-handshake, не отдавая пользователю чужой сертификат и не доводя дело до стандартного браузерного предупреждения о несовпадении имени.
Что это дает на практике:
запросы по IP на 443 сразу режутся;
сертификаты реальных виртуальных хостов не светятся;
пользователь сразу получает ошибку соединения, без лишних переходов и предупреждений.
В итоге это выглядит чище, чем схема с самоподписанным сертификатом-заглушкой.
ssl_reject_handshake on удобно использовать именно в default server для HTTPS-запросов, которые не должны попадать ни в один нормальный виртуальный хост. Если задача - не просто вернуть 404, а вообще не раскрывать ничего лишнего по IP, это один из самых аккуратных вариантов.#nginx #webserver
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19👍2🤡1
📘 На платформе Mentorix вышел курс — «Nginx на практике: от деплоя до production»
Практический курс по настройке Nginx для реальных задач: от базовой конфигурации до использования в production.
В курсе:
• настройка и конфигурация Nginx
• работа как reverse proxy
• SSL и HTTPS
• балансировка нагрузки
• подготовка конфигурации для production
Начать можно сразу — вводная часть курса доступна без оплаты.
🎁 Промокод: NGINX_20
Скидка 20% — действует 48 часов
👉 Пройти курс
Практический курс по настройке Nginx для реальных задач: от базовой конфигурации до использования в production.
В курсе:
• настройка и конфигурация Nginx
• работа как reverse proxy
• SSL и HTTPS
• балансировка нагрузки
• подготовка конфигурации для production
Начать можно сразу — вводная часть курса доступна без оплаты.
🎁 Промокод: NGINX_20
Скидка 20% — действует 48 часов
👉 Пройти курс
Когда на сервере внезапно заканчивается место, первое желание - запустить что-нибудь вроде
du -sh * и начать вручную искать, кто сожрал диск. Рабочий способ, но неудобный. Особенно если каталогов много, структура глубокая, а проблема уже горит.В таких ситуациях выручает
ncdu - консольная утилита для быстрого анализа использования диска. По сути это удобная оболочка над du, но с нормальной навигацией по каталогам в терминале.
apt install ncdu
или
yum install ncdu
ncdu /
После сканирования увидите дерево каталогов, отсортированное по размеру. Дальше можно просто ходить стрелками по директориям и сразу смотреть, что именно занимает место.
Почему это удобно:
не нужно вручную гонять du по каждому уровню
сразу видно самые тяжелые каталоги
можно быстро проваливаться внутрь и искать источник проблемы
работает прямо в терминале, без GUI и лишних зависимостей
ncdu /var
и почти сразу видите, кто виноват: разросшиеся логи, старые бэкапы, кэш пакетов, временные файлы или мусор в home-директориях.
ncdu /var
исключить файловые системы mount points (будет полезно, если не хотите случайно уйти в примонтированные тома и сетевые FS):
ncdu -x /
работать тише и быстрее на больших системах:
ncdu -q /data
Если запускать от root, картина будет полной, потому что утилита сможет читать все каталоги.
#ncdu #disk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Когда в инфраструктуре нужен локальный DNS-кэш, выбор обычно сводится к трем вариантам: Unbound, BIND и systemd-resolved. Все они умеют работать с DNS, но подходят под разные задачи.
systemd-resolved - это в первую очередь локальный stub-resolver для хоста.
Unbound - легкий рекурсивный и кэширующий резолвер.
BIND - большой комбайн, который умеет и рекурсию, и authoritative DNS, и сложные серверные сценарии.
нужен DNS-кэш для сервера или небольшой сети - это Unbound
нужен DNS-комбайн с authoritative-зонами и сложной серверной логикой - это BIND
нужен просто нормальный локальный резолвер на Linux-хосте - это systemd-resolved
Поэтому перед выбором инструмента лучше честно ответить на вопрос: вам нужен локальный резолвер для одного хоста, кэширующий DNS для сети или полноценный DNS-сервер. И вот от этого уже выбирать: systemd-resolved, Unbound или BIND.
#dns #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Когда сервер начинает тормозить, первая ошибка - сразу лезть в логи и гадать, что что-то жрет ресурсы. Гораздо полезнее сначала быстро ответить на три вопроса: кто грузит CPU, кто долбит диск, и где именно начинается узкое место.
Для такой первичной диагностики очень хорошо работают три утилиты:
iotop, dstat и pidstat. Они не заменяют полноценный мониторинг, но отлично помогают, когда нужно быстро понять, что происходит прямо сейчас.Запуск:
iotop
Полезный вариант:
iotop -o
Ключ
-o оставляет только процессы, у которых прямо сейчас есть дисковая активность.dstat хорош тем, что показывает сразу несколько метрик в одном месте:
CPU
disk I/O
network
memory
swap
interrupts
Пример запуска:
dstat
Более полезный вариант:
dstat -cdngym
Что здесь видно:
загрузка CPU
чтение/запись на диск
сетевой трафик
использование памяти
swap
активность файловой системы
Например, по CPU:
pidstat 1
По дисковой активности:
pidstat -d 1
По памяти:
pidstat -r 1
По отдельному процессу:
pidstat -p 1234 1
Где 1234 - это PID нужного процесса.
pidstat особенно полезен, когда нужно смотреть динамику: не просто кто сейчас наверху, а как процесс ведет себя во времени.
1. Сначала смотрим общую картину
dstat -cdngym
Понимаем, куда система упирается: CPU, диск, память или сеть.
2. Если подозрение на диск
iotop -o
Сразу ищем, кто генерирует I/O.
3. Если нужен разбор по процессам
pidstat -d 1
pidstat 1
Смотрим поведение процессов в динамике.
Такой набор часто дает ответ быстрее, чем долгие догадки и хаотичный запуск всего подряд.
#linux #sysadmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Стандартный ping - полезный инструмент, но в реальной админской жизни его часто не хватает. Иногда хочется быстро увидеть задержку на графике, а иногда - массово проверить десятки или сотни адресов без лишней возни с выводом.
Для этого есть как минимум две полезные утилиты:
gping и fping. Они не заменяют классический ping, а скорее дополняют его под разные задачи.Установка:
apt install gping
Пример запуска:
gping 1.1.1.1 8.8.8.8 8.8.4.4
На выходе получаете наглядное сравнение задержек между несколькими хостами. Например, сразу видно, какой DNS отвечает быстрее и насколько стабилен отклик во времени.
Практической пользы для серверной рутины тут не всегда много, но для личного терминала, быстрой проверки канала или просто наглядной диагностики - вещь приятная.
gping скорее из категории удобных и визуально понятных инструментов, чем must-have на каждом сервере.
Установка:
apt install fping
Например, быстро найти активные узлы в сети можно так:
fping -g 192.168.13.0/24 -qa
На выходе получите только адреса тех хостов, которые ответили:
192.168.13.1
192.168.13.2
192.168.13.17
192.168.13.50
192.168.13.186
Очень удобно, потому что формат вывода уже готов для скриптов: одна строка - один IP.
Можно проверять и диапазон явно:
fping -s -g 192.168.13.1 192.168.13.50 -qa
Если нужен обычный пинг одного хоста:
fping 10.20.1.2
Результат будет простой и понятный:
10.20.1.2 is alive
Еще один полезный сценарий - использовать fping в скриптах через код возврата. Например:
fping 10.20.1.2 -q
echo $?
Если хост доступен, получите: 0
Если нет:
fping 10.20.1.3 -q
echo $?
Результат: 1
Это удобно, потому что не нужно парсить лишний текст, обрезать вывод или городить grep.
Команда либо успешна, либо нет и этого уже достаточно для автоматизации.
Обе утилиты полезны, но в разных сценариях.
gping - больше про удобство и визуализацию.
fping - про практичность, автоматизацию и реальные админские задачи.
#ping #network
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🫡1