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

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
🤩 Простой способ сделать вывод читаемым

Иногда команды в linux выдают данные так, что разобраться в них сложно: все идет сплошным текстом, столбцы "пляшут". В таких случаях выручает утилита column, которая форматирует вывод в аккуратные таблицы.

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

▪️ Примеры использования
1️⃣ Красивый вывод mount:


mount | column -t


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

2️⃣ Работа с произвольными разделителями. Например, файл /etc/passwd разделен двоеточиями. Сделаем его аккуратной таблицей:


column -s ":" -t /etc/passwd


Теперь строки легко обрабатывать, например, через awk. Выведем только имена пользователей:


column -s ":" -t /etc/passwd | awk '{print $1}'


Каждое имя - в отдельной строке. Отличный способ быстро собрать список, массив или передать данные.

#linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
🔼 Использование tmpfs для ускорения работы системы и снижения износа SSD

tmpfs - это файловая система, которая хранит данные в оперативной памяти (RAM). Она монтируется как обычный каталог и доступна для приложений прозрачно, но при этом все записи идут не на диск, а в память.

Зачем это может быть полезно:

📍Ускорение работы - операции чтения/записи из RAM значительно быстрее, чем даже на NVMe SSD.
📍Снижение износа SSD - временные файлы не пишутся на диск, что уменьшает количество циклов записи.
📍Автоматическая очистка - содержимое tmpfs исчезает при перезагрузке.


Примеры использования tmpfs

1️⃣ Временные каталоги. Во многих дистрибутивах /tmp по умолчанию монтируется как tmpfs. Если нет - можно добавить в /etc/fstab:


tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0


2️⃣ Кэш браузеров или сборочных систем. Можно вынести тяжёлые временные каталоги (например, npm/yarn cache или /var/cache/pacman) в tmpfs.


tmpfs /var/cache tmpfs defaults,noatime,size=2G 0 0


3️⃣ Компиляция и сборка проектов. Чтобы ускорить работу make, cargo или других сборочных систем, удобно монтировать директорию build/ в RAM:


mount -t tmpfs -o size=4G tmpfs ./build


Ограничение по размеру

Размер tmpfs можно задавать вручную (size=1G), иначе по умолчанию он занимает до половины ОЗУ.

⚠️ Важные нюансы

📍Если память закончится, ядро начнет использовать swap. Это может замедлить работу, а в худшем случае - привести к OOM.
📍Все данные из tmpfs теряются при перезагрузке. Для временных файлов это нормально, но хранить там что-то важное нельзя.

#linux #SSD

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
Bonding vs Teaming: что выбрать для отказоустойчивости сетей в linux

Когда нужно объединить несколько сетевых интерфейсов в один для повышения отказоустойчивости или производительности, в linux есть два основных механизма: bonding и teaming. Оба решают схожие задачи, но работают по-разному.

▪️ Bonding. Классический механизм, существующий в linux уже много лет.

Основные режимы работы:

📍active-backup - один интерфейс активен, остальные в резерве.
📍balance-rr - пакеты отправляются поочерёдно через все интерфейсы.
📍802.3ad (LACP) - агрегирование каналов с поддержкой на стороне коммутатора.
📍balance-xor, broadcast, balance-alb и др.

Плюсы:

Проверенный и стабильный инструмент.
Поддерживается почти во всех дистрибутивах.
Большой выбор режимов.

Минусы:

Ограниченная масштабируемость.
Более тяжелое ядро-зависимое решение (модуль ядра).
Настройка чуть менее гибкая.

▪️ Teaming. Новый механизм (начиная с RHEL 7 и современных систем).

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

📍Управляется через teamd (пользовательский процесс).
📍Более легкий и гибкий, чем bonding.
📍Поддерживает JSON-конфигурацию и плагины (например, мониторинг линков).
📍Использует те же режимы агрегации (active-backup, roundrobin, lacp и т.д.).

Плюсы:

Гибкая настройка (json + плагины).
Легче масштабировать и управлять.
Мониторинг и логика вынесены в userspace (а не только ядро).

Минусы:

Более сложный для "быстрых правок".
В некоторых дистрибутивах bonding до сих пор по умолчанию используется чаще.

▪️ Что выбрать?

Если у вас традиционная инфраструктура (например, debian, старые centOS, небольшие серверы) - проще использовать bonding: он доступен сразу и без лишних зависимостей.

Если вы работаете с современными centOS или хотите больше гибкости (например, интеграцию с NetworkManager, плагины, мониторинг линков) - выбирайте teaming.

#network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
📄 Быстрая раздача файлов: Python HTTP Server и HFS

Иногда нужно быстро передать файлы по сети, без заморочек с настройкой SMB или FTP. Для этого есть два простых инструмента - один для linux, другой для windows.

🐧 Linux: встроенный веб-сервер Python

В современных дистрибутивах Python уже установлен, так что все сводится к одной команде:


cd /var/log
python3 -m http.server 8181


Открываем браузер, заходим на IP-адрес сервера с портом 8181 и сразу видим содержимое директории.
Файлы скачали - сервер остановили. Удобно и быстро.

🏠 Windows: HFS (HTTP File Server)

Для Windows есть проверенное решение - HFS.
Это небольшой исполняемый файл, который работает на любой версии windows, включая 11. Скачали → запустили → открыли в браузере IP машины.

HFS позволяет публиковать как целые директории, так и отдельные файлы, просто перетащив их в окно программы. В отличие от SMB, который постоянно требует возни с версиями протокола и учетками, HFS работает «из коробки».

▪️ Дополнительные возможности HFS:

📍аутентификация пользователей;
📍логирование;
📍кастомизация внешнего вида через HTML-шаблоны;
📍контроль пропускной способности;
📍работа в фоне.


Программа бесплатна и с открытым исходным кодом.
🔗 Официальный сайт HFS

#linux #windows #tools

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
А вы пробовали перезагружать ваш ролтер?

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
17😁5
↗️ Быстрый способ узнать все о системе

Если раньше для просмотра базовой информации о linux системе приходилось использовать целый набор команд вроде:


lsb_release -a
uname -a
cat /etc/os-release
cat /etc/redhat-release


- то теперь достаточно одной:


hostnamectl

Static hostname: networkadmin.ru
Icon name: computer-vm
Chassis: vm
Machine ID: ---
Boot ID: ---
Virtualization: microsoft
Operating System: Debian GNU
Kernel: Linux ---
Architecture: x86-64


Что можно увидеть

Имя хоста (static/pretty/текущее)
ОС и версия дистрибутива
Версия ядра
Аппаратная информация (chassis, архитектура)
Виртуализация или контейнеризация (VM или Docker/LXC/OpenVZ)
Machine ID и Boot ID - полезно при отладке и мониторинге


Также с помощью hostnamectl можно не только смотреть информацию, но и менять имя сервера:


hostnamectl set-hostname myserver


Изменения применяются сразу и сохраняются после перезагрузки.

#hostnamectl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116
👀 Мониторинг изменений файлов с помощью inotify и fswatch

В Linux есть подсистема ядра - inotify, которая умеет отслеживать изменения в файловой системе и выдавать уведомления о событиях (создание, удаление, обновление файлов и каталогов). Для работы можно воспользоваться утилитой fswatch, которая доступна почти во всех популярных ОС. В linux под капотом она использует именно inotify.

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


apt install fswatch


Запуск простого мониторинга за директорией /tmp:


fswatch /tmp


Но в таком виде вывод слишком сырой. Можно сразу добавить ключи:

-x - отображать тип событий
-t - выводить временные метки


fswatch -x -t /tmp


▪️ Пример работы

В одной консоли запускаем fswatch, а в другой пробуем:


echo '123' > /tmp/file.txt
rm /tmp/file.txt


В логах получаем:


28 Sep 2025 23:27:20 MSK /tmp/file.txt Created
28 Sep 2025 23:27:20 MSK /tmp/file.txt Updated
28 Sep 2025 23:27:35 MSK /tmp/file.txt Removed


▪️ Автоматизация

Мониторинг можно запустить в фоне:


fswatch -x -t /tmp >> /var/log/fswatch.log &


или добавить автозапуск через cron:


@reboot fswatch -x -t /tmp >> /var/log/fswatch.log &


Более надёжный способ - оформить как сервис systemd: /etc/systemd/system/fswatch.service


[Unit]
Denoscription=fswatch file monitor
[Service]
ExecStart=/usr/bin/fswatch -x -t /tmp
[Install]
WantedBy=multi-user.target


Запуск:


systemctl enable --now fswatch.service
journalctl -u fswatch.service


Можно отфильтровать конкретные типы событий, например, только удаление:


fswatch --event Removed -x -t /tmp


#inotify #fswatch

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
✍️ Практика работы с tcpdump: фильтры и полезные примеры

tcpdump - один из самых используемых инструментов для анализа сетевого трафика прямо в консоли. С его помощью можно не только снять дамп, но и отфильтровать нужные пакеты, чтобы не утонуть в гигабайтах логов.

▪️ Базовый запуск


tcpdump -i eth0


Смотрим весь трафик интерфейса eth0. Часто этого уже достаточно для первичной диагностики.

▪️ Полезные фильтры

1️⃣ Фильтрация по IP


tcpdump host 192.168.1.10


Только пакеты от/к указанному IP.

2️⃣ Фильтрация по порту


tcpdump port 22


Видим весь SSH-трафик.

3️⃣ Только входящие или исходящие пакеты


tcpdump src host 10.0.0.5
tcpdump dst port 80


4️⃣ Комбинация условий (AND, OR, NOT)


tcpdump src host 192.168.1.100 and port 443
tcpdump not port 22


5️⃣ Фильтрация по протоколу


tcpdump icmp
tcpdump tcp
tcpdump udp


▪️ Практические примеры

1️⃣ Смотреть весь HTTP-трафик


tcpdump -i eth0 tcp port 80 -A


Ключ -A выводит полезную нагрузку пакетов в ASCII. Удобно, если нужно подсмотреть запросы.

2️⃣ Анализ TLS (SNI и handshake)


tcpdump -i eth0 tcp port 443 -vvv


С подробной детализацией можно увидеть домены, к которым идёт подключение.

3️⃣ Отследить DNS-запросы


tcpdump -i eth0 udp port 53


4️⃣ Сохранить дамп для анализа в Wireshark


tcpdump -i eth0 -w dump.pcap


А потом открыть dump.pcap в Wireshark.

5️⃣ Ограничить количество пакетов


tcpdump -c 100 -i eth0


Собираем только первые 100 пакетов.

▪️ Резюме:

Используйте -nn - чтобы ip-адреса и порты не переводились в имена (ускоряет работу).
-vvv - максимально подробный вывод.
Для длительного мониторинга всегда сохраняйте в файл (-w) и анализируйте в wireshark или tshark.

#linux #tcpdump

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Пушистый стажер, работает за вискас

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁185🔥2
🔄 strace и ltrace: отладка процессов

Часто возникает ситуация: программа подвисает, работает странно или вообще не запускается. В таких случаях на помощь приходят два инструмента - strace и ltrace. Оба они позволяют заглянуть внутрь процесса, но делают это на разных уровнях.

▪️ strace - системные вызовы. strace перехватывает системные вызовы, которые делает процесс, и возвращаемые значения. Это удобно для анализа проблем с доступом к файлам, сетевыми подключениями или зависаниями.

📍 Запуск с приложением:


strace ls /nonexistent


Вывод покажет, что ls пытается открыть директорию и получает ENOENT (нет такого файла).

📍 Подключение к уже работающему процессу:


strace -p 1234


Теперь видно, чем занимается процесс с PID 1234.

📍 Фильтрация вызовов:


strace -e open,read,write -p 1234


Будут показаны только вызовы open, read, write.

▪️ ltrace - вызовы библиотек. Если strace работает с системными вызовами ядра, то ltrace отслеживает вызовы функций библиотек. Это особенно полезно, если программа спотыкается не на уровне ядра, а на уровне glibc или других библиотек.

📍 Пример:


ltrace ls


Вы увидите вызовы функций вроде malloc(), strlen(), fopen().

📍 Фильтрация по конкретным функциям:


ltrace -e malloc,free ./myprog


Будут показаны только вызовы функций управления памятью.

▪️ Совместное применение. Часто эти инструменты используют вместе:

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

▪️ Практические кейсы

📍 Отладка зависающих процессов:


strace -p <PID>


Сразу видно, ждёт ли программа I/O или зациклилась.

📍 Диагностика ошибок "файл не найден":


strace ./prog 2>&1 | grep ENOENT


Можно увидеть, какой именно файл не удаётся открыть.

📍 Поиск утечек памяти:


ltrace -e malloc,free ./prog


Если много malloc(), но мало free() - повод задуматься.

#linux #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
🌟 Подводные камни при копировании файлов в linux

На первый взгляд, копирование файлов в linux выглядит элементарной задачей. Но если копать глубже, у команды cp есть несколько нюансов, которые легко могут привести к неожиданному результату.

▪️ Базовый пример. Хочется скопировать содержимое одной директории в другую:


cp /dir_a/* /dir_b


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


cp -a /dir_a/* /dir_b


Ключ -a = рекурсия + права доступа + даты + симлинки. В общем, максимально правильное копирование.

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

Звездочка раскрывается в bash. Символ * обрабатывает сама оболочка, а не cp. То есть bash разворачивает список файлов и передаёт их в виде длинной команды:


cp -a /dir_a/file1 /dir_a/file2 ... /dir_b


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

Скрытые файлы теряются. Файлы, начинающиеся с точки (.htaccess, .env и т.п.), по умолчанию не попадут в *. В результате копирование окажется не точным.

Пустая директория = ошибка. Если в исходной папке нет файлов, то * не развернётся, и cp просто вернет ошибку.

▪️ Как сделать правильно. Лучше вообще избегать *, когда речь о копировании директорий. Надежный способ:


cp -aT /dir_a /dir_b


Здесь:

-a - копирование со всеми атрибутами
-T - воспринимать /dir_b как саму директорию назначения, а не поддиректорию внутри неё

Таким образом, копирование отрабатывает корректно: и вложенные каталоги, и скрытые файлы будут на месте.

#linux #cp

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍242🔥1😱1👌1
ℹ️ Тонкая настройка swap для производительности

Swap в linux играет роль страховочного пространства на диске для выгрузки неиспользуемых страниц памяти. Но работать с ним можно по-разному: от полного отключения до использования современных технологий сжатия. Разберем основные практики.

▪️ Проверка текущего состояния. Посмотреть активные swap-разделы и файлы можно так:


swapon --show
free -h


▪️ Полное отключение swap. Если на сервере достаточно оперативной памяти, swap часто отключают, чтобы избежать лишних задержек:


swapoff -a


Чтобы выключить swap навсегда - закомментируйте его строки в /etc/fstab.

▪️ Настройка приоритета. Если используется несколько swap-устройств (например, раздел и файл), то можно указать приоритет. Чем выше значение, тем раньше будет использоваться swap:


# swapon /swapfile --priority 100


Текущие приоритеты видно в выводе swapon --show.

▪️ Управление swappiness. Параметр vm.swappiness задает, как активно ядро будет использовать swap.

0 - максимально избегать использования swap.
60 (по умолчанию) - сбалансированный вариант.
100 - активно выгружать память в swap.

Пример настройки:


sysctl -w vm.swappiness=10


Для постоянного применения добавьте в /etc/sysctl.conf:


vm.swappiness=10


▪️ Zswap и Zram. Чтобы уменьшить нагрузку на диск и ускорить работу используют сжатие памяти:

📍 Zswap - сжатый кэш для swap в оперативке.
Активация через параметры ядра:


zswap.enabled=1


📍 Zram - сжатый блочный девайс в RAM, который можно подключить как swap. Это будет полезно на ноутбуках и в контейнерах.
Установка и включение в Debian/Ubuntu:


apt install zram-tools
systemctl enable --now zramswap.service


#linux #swap

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🏷 Как избежать ошибок с монтированием в Linux

Когда речь заходит о работе с внешними или сетевыми хранилищами, важно проверять, что файловая система действительно подключена и смонтирована. В Linux для этого есть две удобные утилиты - findmnt и findfs.

▪️ findmnt - контроль точек монтирования. Запуск без параметров показывает все точки монтирования. Но есть и практичный режим проверки fstab:


findmnt -x

Success, no errors or warnings detected


Если в конфигурации есть ошибка - получите подробное сообщение:


findmnt -x

/mnt/backup
[E] unreachable on boot required source: UUID=151ea24d-977a-412c-818f-0d374baa5012


Также можно проверять наличие конкретной точки монтирования:


if findmnt -rno TARGET "$1" >/dev/null; then
echo "$1 mounted."
else
echo "$1 not mounted."
fi


▪️ findfs - поиск по UUID и меткам. findfs ищет файловые системы по UUID, LABEL, PARTLABEL, PARTUUID. Пример:


findfs "UUID=151ea24d-977a-412c-818f-0d374baa5013"

/dev/sda2


Выходной код тоже полезен в скриптах:

0 → устройство найдено
1 → файловая система не найдена


if findfs "UUID=$1" >/dev/null; then
echo "$1 connected."
else
echo "$1 not connected."
fi


⚠️ Почему это важно?

Если не проверить подключение, легко попасть в неприятную ситуацию:

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

#findmnt #findfs

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Покупка нового корпуса - это что-то на богатом

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18👍3👎1
⌛️ Быстрый способ отладки bash-скриптов

Когда в скрипте что-то идет не так, часто хочется понять, какая команда выполнилась последней и какие значения получили переменные. Вместо того чтобы расставлять десятки echo, в bash есть встроенный инструмент - set -x.

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

▪️ Пример: резервное копирование файла

Создадим простой скрипт, который проверяет наличие файла и копирует его в директорию резервных копий:


#!/bin/bash
set -x

src="/etc/hosts"
dst="/tmp/backup"

mkdir -p "$dst"
timestamp=$(date +%Y%m%d_%H%M%S)
cp "$src" "$dst/hosts_$timestamp"

echo "Backup created: $dst/hosts_$timestamp"


Вывод консоли:


Запуск
# ./backup.sh
+ src=/etc/hosts
+ dst=/tmp/backup
+ mkdir -p /tmp/backup
+ date +%Y%m%d_%H%M%S
+ timestamp=20251007_121330
+ cp /etc/hosts /tmp/backup/hosts_20251007_121330
+ echo 'Backup created: /tmp/backup/hosts_20251007_121330'
Backup created: /tmp/backup/hosts_20251007_121330


Мы видим каждое действие: какие переменные подставились, как отработала команда date, куда скопировался файл.

#linux #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
🎆 Удобная веб-панель для управления linux серверами

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

▪️ Установка и запуск. В большинстве систем Cockpit есть прямо в репозиториях.

debian/ubuntu:


apt install cockpit -y
systemctl enable --now cockpit.socket


RHEL/centOS/fedora:


dnf install cockpit -y
systemctl enable --now cockpit.socket


После этого панель доступна по HTTPS на порту 9090: https://IP-сервера:9090

Авторизация выполняется через обычный системный логин и пароль.

📍 Возможности Cockpit

Мониторинг ресурсов (CPU, RAM, диски, сеть) в реальном времени
Управление сервисами systemd (запуск, остановка, перезапуск)
Просмотр логов journald
Управление пользователями и правами
Настройка сетевых интерфейсов и firewall
Работа с дисками, RAID и LVM
Подключение Docker/Kubernetes для управления контейнерами
Возможность администрировать несколько серверов через одну панель

📍 Почему это удобно?

Минимальная настройка: поставил и сразу работает.
Не требует сторонних агентов - все идет через systemd и встроенные механизмы.
Легко интегрируется с SELinux, firewalld и другими системными компонентами.

#linux #cockpit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🔫 Шпаргалка по systemctl status

Обычно мы проверяем состояние конкретной службы:


systemctl status mariadb


Но если запустить без указания сервиса:


systemctl status


то получим сводку по всей системе. Очень полезная штука

Что покажет systemctl status без аргументов:

State - общее состояние (например: running, degraded)
Failed - количество упавших юнитов
Uptime - время работы systemd
Версия systemd
Количество активных units
Дерево зависимостей сервисов в удобном виде


▪️ Как найти упавшие службы


systemctl list-units --failed


Посмотреть детали по конкретному юниту:


systemctl status <unit>
journalctl -u <unit>


Пример:


systemctl status


Вывод:


State: degraded
Failed: 1 units


Проверяем, что упало:


systemctl list-units --failed


например, systemd-modules-load.service.

Дальше копаемся в логах:


journalctl -u systemd-modules-load.service


▪️ Итоги

systemctl status → быстрый обзор состояния системы.
systemctl list-units --failed → список проблемных юнитов.
journalctl -u <unit> → подробные логи конкретной службы.

#linux #systemctl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
🏃 PowerShell шпаргалки для linux админа

Админы, привыкшие к bash и linux, часто недооценивают powershell. А зря - это также неплохая оболочка, которая умеет не только выполнять команды, но и работать с объектами, сервисами и API windows. Ниже несколько полезных сценариев, которые пригодятся, если админите и linux, и windows.

▪️ Мониторинг процессов и портов. Аналог ps aux | grep и ss -tulpn:


# Процессы по имени
Get-Process | Where-Object { $_.ProcessName -like "*chrome*" }

# Открытые TCP-порты
Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }


▪️ Массовая работа с файлами. Аналог find + xargs:


# Найти все *.log файлы и удалить старше 7 дней
Get-ChildItem -Path "C:\Logs" -Filter *.log -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force


▪️ Проверка доступности хостов. Аналог ping + for:


$hosts = "8.8.8.8","1.1.1.1","networkadmin.ru"
foreach ($h in $hosts) {
Test-Connection -ComputerName $h -Count 2 -Quiet |
ForEach-Object { "$h -> $($_ -replace 'True','OK' -replace 'False','Fail')" }
}


▪️ Работа с сервисами. Аналог systemctl:


# Проверить статус службы
Get-Service -Name "Spooler"

# Перезапустить службу
Restart-Service -Name "Spooler"


▪️ Сетевые запросы и API. Аналог curl:


Invoke-RestMethod -Uri "https://api.ipify.org?format=json"


▪️ Сбор информации о системе. Аналог lshw и df -h:


# Системная информация
Get-ComputerInfo | Select-Object CsName, WindowsVersion, OsArchitecture

# Диски
Get-PSDrive -PSProvider FileSystem


#powershell #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥2
⬆️ Netplan в ubuntu - альтернативный способ настройки сетей

Ubuntu давно перешла от классического /etc/network/interfaces к новому инструменту - netplan. Он появился начиная с ubuntu 17.10 и стал основным способом настройки сетевых интерфейсов.

❗️ Netplan - это уровень абстракции для сетевых конфигураций.

Использует YAML-файлы в /etc/netplan/.

Работает через рендереры:

systemd-networkd - для серверов и headless-систем.
NetworkManager - для десктопов.

Позволяет централизованно и декларативно описывать сеть.


▪️ Где лежат конфиги

Все настройки находятся в /etc/netplan/*.yaml.
По умолчанию обычно есть файл 01-netcfg.yaml или 50-cloud-init.yaml.

▪️ Примеры конфигураций
1️⃣ DHCP (получение адреса автоматически)


network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true


2️⃣ Статический IP


network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]


3️⃣ Несколько IP на одном интерфейсе


network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.101/24
- 192.168.1.102/24


4️⃣ Bonding (для отказоустойчивости и агрегации)


network:
version: 2
bonds:
bond0:
interfaces: [ens33, ens34]
parameters:
mode: balance-rr
addresses:
- 192.168.1.200/24
gateway4: 192.168.1.1


5️⃣ VLAN


network:
version: 2
vlans:
vlan100:
id: 100
link: ens33
addresses: [192.168.100.10/24]


▪️ Применение настроек

После изменения файлов:


sudo netplan apply


Для теста перед применением можно использовать:


sudo netplan try


(дает 120 секунд на подтверждение, если сеть отвалилась - конфиг откатывается).

#linux #netplan

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
Степаныч, выкидывай этот верхний ящик. Мне лежать то как? 🐈

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20😁4
✉️ Отправка почты через curl

Многие для отправки писем из консоли ставят дополнительные утилиты вроде mailx или mutt. Но часто этого не нужно - все умеет curl.

▪️ Простейшая отправка письма


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--user "admin@networkadmin.ru:MySecurePass" \
--upload-file ~/letter.txt


Пример letter.txt:


From: "Admin" <admin@networkadmin.ru>
To: "User" <user@domain.ru>
Subject: Test mail from curl

Hello from curl!


Заголовки (From, Subject и др.) задаются прямо в файле, и можно указывать любые значения.

▪️ Как спрятать пароль

Хранить пароль в команде небезопасно. Вместо этого используем ~/.netrc:


machine smtp.networkadmin.ru login admin@networkadmin.ru password MySecurePass
machine smtp.another.ru login user@another.ru password StrongPass123


Теперь команда проще и безопаснее:


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--netrc \
--upload-file ~/letter.txt


▪️ Работа с шифрованием
📍 Требовать TLS:


curl --ssl-reqd ...


📍 Автоматически использовать TLS, если поддерживается:


curl --ssl ...


📍 Для SMTPS (порт 465) достаточно:


curl --url "smtps://smtp.networkadmin.ru" ...


▪️ Указание HELO/EHLO. Можно явно задать имя клиента:


curl --url "smtp://smtp.networkadmin.ru/myhost.domain.ru" ...


#SMTP #curl

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