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
👣 Как защищать API-интерфейсы

Три базовых, но эффективных подхода, которые стоит внедрить в любом API:

1️⃣ Rate Limiting - ограничение количества запросов. Ограничивает количество запросов от одного IP, токена или пользователя за определённый интервал времени. Защищает от: DDoS-атак, брутфорса, скрейпинга.

📍 В NGINX:


limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

location /api/ {
limit_req zone=api_limit burst=20 nodelay;
}


📍 В Express.js (Node.js):


const rateLimit = require("express-rate-limit");

const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
});

app.use("/api/", limiter);


2️⃣ CORS (Cross-Origin Resource Sharing). Механизм безопасности браузера, позволяющий указать, какие домены могут обращаться к API.

📍 Пример настройки CORS в Express.js:


const cors = require('cors');
app.use(cors({
origin: 'https://yourfrontend.com'
}));


Не забудьте запретить * в production - это дырка в безопасности.

3️⃣ Token-Based Access (JWT / OAuth2). Пользователь аутентифицируется, получает токен и использует его для доступа к API. Сервер проверяет подпись токена.

📍 Пример в Express.js:


const jwt = require('jsonwebtoken');

function authenticateToken(req, res, next) {
const token = req.headers['authorization']?.split(' ')[1];
if (!token) return res.sendStatus(401);

jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}


Итого:

Rate Limiting - спасает от злоупотреблений.
CORS - управляет доступом между доменами.
Token-based доступ - дает безопасность и гибкость.

Правильная комбинация этих механизмов - основа для защиты любого публичного API.

#API #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
😀 Диагностика сети: traceroute, mtr, tracetcp и другие утилиты

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

🐧 Linux

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


traceroute -I ya.ru


▪️ tracepath - аналог traceroute, также использует UDP, но сразу показывает MTU на каждом хопе:


tracepath ya.ru


▪️ mtr - инструмент, сочетающий в себе ping и traceroute. Поддерживает ICMP, UDP и TCP. В режиме реального времени показывает статистику потерь и задержек на каждом узле:


mtr ya.ru


🏠 Windows

▪️ tracert - стандартная утилита Windows для трассировки по ICMP:


tracert ya.ru


▪️ pathping - гибрид ping и tracert, который дает более подробную статистику. Работает только с ICMP, но часто помогает точнее понять, где теряются пакеты:


pathping ya.ru


▪️ tracetcp - сторонняя утилита для TCP SYN трассировки по конкретному порту:


tracetcp ya.ru:443


Полезна, когда ICMP или UDP заблокированы, а нужно проверить доступность TCP-сервиса. Показывает, где именно по пути блокируется соединение. Ставится отдельно (ищите на сайте разработчика). Аналога на Linux, увы, нет, но было бы очень кстати.

🌟 Выводы:

📍 Используйте mtr и tracetcp, если нужно точечно диагностировать проблемы.
📍 tracepath удобен для анализа MTU.
📍 На Windows pathping даст больше инфы, чем tracert.


#network #diagnostic

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🖥 Как вернуть автоматическое резервное копирование реестра в Windows 10/11

Начиная с версии Windows 10 1809, Microsoft отключила автоматическое создание бэкапов реестра - якобы ради экономии места (всего 100–200 МБ). Но вместе с этой "оптимизацией" пользователи лишились простого способа восстановить систему, заменив повреждённые файлы реестра на рабочие копии из RegBack.

Хотя используется эта функция нечасто, иметь резервную копию всегда лучше, чем её отсутствие.

⚙️ Как включить автоматическое резервное копирование:

Создайте параметр EnablePeriodicBackup в реестре:


reg add "HKLM\System\CurrentControlSet\Control\Session Manager\Configuration Manager" /v EnablePeriodicBackup /t REG_DWORD /d 1 /f


Теперь задание планировщика RegIdleBackup будет выполняться в рамках автоматического обслуживания системы (раз в сутки), и сохранять резервные копии реестра в папку:


%windir%\System32\config\RegBack


⚠️ Важно: если вы хотите вручную проверить, срабатывает ли задание - запустите RegIdleBackup через планировщик заданий или с помощью PowerShell:


Start-ScheduledTask -TaskName "RegIdleBackup"


#windows #registry

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Все мы немного Серега

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥2
🌐 Как работает NAT и чем отличаются SNAT, DNAT и MASQUERADE

NAT (Network Address Translation) - это технология трансляции сетевых адресов, которая позволяет устройствам локальной сети выходить в Интернет через один общий внешний IP. Она лежит в основе почти каждого домашнего роутера и многих корпоративных решений. Но под капотом у NAT есть разные виды — разберёмся, в чём их суть и где применять.

Что делает NAT?

NAT подменяет исходные или целевые IP-адреса (и порты) в IP-пакетах. Это позволяет:

📍 Скрывать внутреннюю адресацию;
📍 Пробрасывать доступ к локальным сервисам извне;
📍 Повышать безопасность, не раскрывая реальную структуру сети


▪️ SNAT (Source NAT). Изменяет исходный IP-адрес пакета, обычно при выходе из локальной сети в Интернет. Пример:


iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.5


Используется, когда у сервера постоянный внешний IP.

▪️ MASQUERADE. Вариант SNAT для динамического IP-адреса (например, от провайдера через PPPoE). Автоматически подставляет текущий внешний IP:


iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


Отличный выбор для нестабильного внешнего интерфейса.

▪️ DNAT (Destination NAT). Меняет целевой IP-адрес. Применяется для проброса портов — когда нужно, чтобы запросы снаружи попадали на внутренние машины:


iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.100:22


Удобно для проброса SSH, HTTP, RDP и других сервисов внутрь локальной сети.

▪️ Пример: У вас есть веб-сервер 192.168.1.10 в локалке, а внешний IP — динамический. Тогда для организации доступа из интернета:

📍 Используем MASQUERADE на исходящий трафик;
📍 Применяем DNAT для проброса порта 80 на 192.168.1.10

🌟 Важно помнить:

📍 Все правила NAT создаются в таблице nat;
📍 SNAT и MASQUERADE — в цепочке POSTROUTING;
📍 DNAT - в цепочке PREROUTING

#NAT #iptables

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍236🔥4
🖥 Анализ сети в Linux: ethtool, iperf и nload

Когда возникает подозрение на проблемы с сетью - падение скорости, потери пакетов или просто "тормозит" - важно уметь быстро локализовать причину. В Linux есть три утилиты, которые закрывают основные потребности в диагностике: ethtool, iperf3 и nload.

▪️ ethtool - работа с сетевыми интерфейсами. Это низкоуровневая утилита, с помощью которой можно узнать:

Скорость подключения и режим дуплекса:


ethtool eth0


Есть ли сбои на интерфейсе:


ethtool -S eth0 | grep -E 'err|drop'


Настроить автосогласование, отключить Wake-on-LAN, изменить параметры offload'инга.
Удобно для диагностики "битых" линков и проблем с драйверами.

▪️ iperf3 - тестирование пропускной способности. Утилита для бенчмарков канала в режиме клиент-сервер:

На одном узле запускаем сервер:


iperf3 -s


На втором - клиент:


iperf3 -c 192.168.1.1


Показывает скорость, потери, джиттер. Можно использовать TCP и UDP, настраивать количество потоков и длительность теста.

Пример теста в 5 потоков:


iperf3 -c 192.168.1.1 -P 5


Хорошо подходит для поиска узких мест между хостами.

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


nload eth0


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

Особенно удобен, когда нужно на лету оценить нагрузку и понять, кто грузит канал.

▪️ Резюме:

ethtool - диагностика интерфейса;
iperf3 - замер скорости и качества канала;
nload - визуальный мониторинг трафика

#linux #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134
Что такое Unix-сокеты в Linux и зачем они нужны

В Linux, как и в классическом Unix, существует особый тип межпроцессного взаимодействия - Unix Domain Sockets (UDS). Многие админы сталкиваются с ними при настройке сервисов вроде php-fpm, MySQL, PostgreSQL, nginx, не всегда понимая, зачем выбирать между TCP и сокетом.

🌟 Сокет - это специальный тип файла, который создаётся в файловой системе и служит точкой подключения для процессов. Выглядит как обычный файл, но данные через него не записываются на диск, а обрабатываются напрямую в оперативной памяти ядром Linux.

▪️ Пример пути к сокету:


/run/mysqld/mysqld.sock


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

▪️ Когда использовать Unix-сокеты?

📍 Доступ к сервису нужен только локально.
📍 Нет необходимости открывать порт и рисковать безопасностью.
📍 Можно ограничить доступ к сокету правами на файл.


На обычном сервере с веб-сайтами разницы между 127.0.0.1:3306 и mysqld.sock вы, скорее всего, не заметите. Но с точки зрения безопасности и практики - предпочтительно использовать сокеты.

▪️ Как проверить работу сокета?

Через netcat:


nc -U /run/mysqld/mysqld.sock


Аналогичный запрос по TCP:


telnet 127.0.0.1 3306


Результат будет одинаковый, только путь разный.

🌟 Unix-сокеты - это быстрый, безопасный и удобный способ локального взаимодействия между сервисами. Если ваш сервис поддерживает их — используйте. Особенно когда нет нужды слушать внешний интерфейс.

#linux #unixsocket

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164
🔒 SELinux: как работает и стоит ли его включать

Security-Enhanced Linux (SELinux) - это механизм управления доступом на уровне ядра, разработанный NSA и Red Hat. Он добавляет ещё один уровень защиты поверх традиционной модели прав доступа в Linux и дает системе возможность жестко контролировать, кто и что может делать в ОС, даже если у процесса уже есть root-доступ.

SELinux реализует модель Mandatory Access Control (MAC) - обязательного управления доступом. В отличие от Discretionary Access Control (DAC), где владелец объекта определяет права, MAC применяет централизованные политики, которым обязаны следовать все процессы и пользователи.

Каждому процессу и файлу присваивается контекст безопасности. Контекст включает в себя:
📍 тип объекта (например, httpd_sys_content_t)
📍 роль и домен процесса (например, httpd_t)

SELinux определяет, может ли процесс с данным контекстом взаимодействовать с файлом по текущей политике. Если нет - доступ будет заблокирован, даже если пользователь - root.

▪️ Режимы работы SELinux:

Enforcing - политика активна, запрещенные действия блокируются
Permissive - действия не блокируются, но журналируются
Disabled - SELinux отключен


Проверить режим можно так:


getenforce


Или через:


sestatus


▪️ Когда стоит включать SELinux?

🟩 SELinux особенно полезен на серверах с публичным доступом - веб-серверы, почтовики, базы данных. Он помогает изолировать процессы, минимизировать последствия уязвимостей и сдерживать вредоносные действия.

🔲 Но SELinux имеет крутую кривую обучения. Он может мешать "работать как привыкли", если не понимать, как он устроен. Ошибки конфигурации могут блокировать нужные процессы, а диагностика требует навыков чтения журналов (/var/log/audit/audit.log).

🌟 Совет: На старте используйте Permissive режим, чтобы изучить логи и не получить «белый экран» от nginx. Постепенно можно перейти в Enforcing, когда все отлажено.

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

#SELinux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
⚡️ Что такое IPv6 SLAAC и как его контролировать

SLAAC (Stateless Address Autoconfiguration) - это механизм в IPv6, который позволяет устройствам самостоятельно получить IP-адрес, без участия DHCP-сервера. Удобно? Безусловно. Но у такого "автомата" есть и свои нюансы, особенно в корпоративных сетях.

▪️ Как работает SLAAC?

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

📍 Получает префикс IPv6-сети через Router Advertisement (RA) от ближайшего маршрутизатора.
📍 На основе этого префикса и своего MAC-адреса (или сгенерированного идентификатора) формирует глобальный IPv6-адрес.
📍 Проверяет уникальность адреса через DAD (Duplicate Address Detection).

И готово - устройство уже в сети, без DHCP.

▪️ Почему это может быть проблемой?

📍 Обход контроля доступа. Даже если DHCP отключен, клиент все равно получит адрес и выйдет в интернет - достаточно RA от маршрутизатора.
📍 Трудности в управлении. SLAAC не позволяет "жестко" задавать DNS-серверы, lease time и прочие параметры, как это делает DHCPv6.
📍 Угрозы безопасности. Злоумышленник может раздавать фальшивые RA-пакеты и перенаправлять трафик на себя (RA spoofing).

▪️ Как контролировать SLAAC в сети?

📍 Отключить SLAAC на маршрутизаторе: На большинстве устройств (Cisco, Mikrotik, Linux) можно отключить RA или настроить флаг Managed в RA, чтобы устройства использовали DHCPv6 вместо SLAAC.
📍 Фильтрация RA-пакетов: Используйте RA Guard на уровнях доступа (поддерживается на управляемых коммутаторах), чтобы блокировать нежелательные RA от клиентов.
📍 Использовать DHCPv6: Более предсказуемый способ выдачи адресов и настройки DNS, с возможностью централизованного логирования.
📍 NDP мониторинг: Ведите учет устройств, использующих SLAAC, с помощью инструментов вроде ndpmon, scapy или Wireshark.

#IPv6 #SLAAC

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Тащите все сервера, что у вас есть.

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁111
⚙️ MSDaRT - инструмент восстановления Windows на базе WinPE

MSDaRT (Microsoft Diagnostics and Recovery Toolset) - это официальный набор утилит от Microsoft, созданный на основе среды WinPE. Ранее был известен как ERD Commander и входит в состав Microsoft Desktop Optimization Pack (MDOP), доступного по корпоративной подписке. Несмотря на отсутствие активной поддержки, DaRT по-прежнему полезен, особенно при восстановлении современных версий Windows 10 и 11.

⭐️ Что умеет MSDaRT?

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

📍 Сброс пароля администратора
📍 Восстановление удалённых файлов и разделов
📍 Удаление проблемных обновлений
📍 Проверка образа системы (SFC, chkdsk и др.)
📍 Графический Проводник
📍 Доступ к командной строке
📍 Подключение к сети и удалённое управление (Remote Connection Viewer)


💿 Гибкость и расширяемость

Образ DaRT можно кастомизировать: добавить свои утилиты, драйверы и скрипты. По сути, это полноценный LiveCD, который можно адаптировать под нужды ИТ-отдела. Особенно актуально в средах, где по политике безопасности запрещены сторонние образы восстановления.

Для сборки ISO-образа используется мастер DaRT Recovery Image Wizard, доступный в составе MDOP.

⚠️ Если стандартной среды восстановления WinRE недостаточно, а сторонние LiveCD не подходят - MSDaRT остается отличной отправной точкой для создания надежного образа восстановления корпоративной Windows.

#msdart #winpe

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114
Очень радостная новость.. 😁

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21
🕘 Systemd timers против cron

Systemd timers - это более современный и гибкий способ планирования задач в linux, особенно на серверах с systemd.

🌟 Почему systemd timers лучше cron?

📍 Логирование по умолчанию - systemd записывает stdout/stderr задачи в journal, не нужно вручную перенаправлять вывод
📍 Зависимости и условия запуска - можно привязать таймер к другим сервисам, целям (targets) и условиям
📍 Точный контроль времени и интервалов - есть OnCalendar, OnBootSec, OnUnitActiveSec и другие
📍 Простой мониторинг - можно посмотреть статус задачи: когда запускалась, сколько длилась, когда запустится снова
📍 Юзер-таймеры - можно создавать таймеры без root-доступа для отдельных пользователей


▪️ Как настроить systemd timer. Создаем два юнита: *.service (что запускать) и *.timer (когда запускать).

Пример: бэкап в /var/backups каждую ночь в 3:00


vi /etc/systemd/system/backup.service



[Unit]
Denoscription=Nightly backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh



vi /etc/systemd/system/backup.timer



[Unit]
Denoscription=Run backup noscript daily at 3AM

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target


Активируем:


sudo systemctl daemon-reexec
sudo systemctl enable --now backup.timer


▪️ Проверить статус:


systemctl list-timers
systemctl status backup.timer
journalctl -u backup.service


▪️ Другие примеры таймеров. Через 5 минут после загрузки:


[Timer]
OnBootSec=5min


Каждые 15 минут:


[Timer]
OnUnitActiveSec=15min


Каждый понедельник в 6 утра:


[Timer]
OnCalendar=Mon *-*-* 06:00:00


▪️ Полезное:

📍 Устанавливайте Persistent=true, чтобы таймер отработал, даже если система была выключена в момент запуска
📍 Используйте systemctl cat для просмотра активных юнитов
📍 Для задач от пользователя используйте ~/.config/systemd/user/


#systemd #cron

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
👩‍🎨 socat - универсальный швейцарский нож для работы с потоками в Unix

В копилку полезных админских утилит - socat. Это инструмент для организации двунаправленной передачи данных между самыми разными источниками: файлами, сокетами (TCP, UDP, Unix), устройствами, stdin/stdout и даже псевдотерминалами.

▪️ Простой пример как telnet. Передаем данные с консоли ( - ) на SMTP сервер:


socat - TCP4:smtp.networkadmin.ru:25


Пробуем:


helo networkadmin.ru
mail from:<admin@networkadmin.ru>


И получаем, к примеру:


503 5.5.4 Error: send AUTH command first.


Так вы можете проверить, требует ли сервер авторизацию - чтобы, например, не стать открытым релеем для спама.

▪️ Локальный TCP-прокси на удалённый веб-сервер


socat TCP4-LISTEN:8080,reuseaddr,fork TCP4:192.168.50.10:80


Теперь можно обращаться к удалённому серверу через localhost:


curl http://localhost:8080 -L -H "Host: networkadmin.ru"


▪️ Проксирование Unix-сокета на TCP-порт. Допустим, MySQL слушает только через сокет:


socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/run/mysqld/mysqld.sock


Теперь подключение к localhost:3307 будет работать как к сокету:


telnet 127.0.0.1 3307


▪️ Удаленный Unix-сокет, как будто он локальный. На машине-клиенте:


socat UNIX-LISTEN:/run/mysqld/mysqld.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 \
TCP:192.168.50.10:3307


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

#socat #linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🫡1
🔎 Отслеживание изменений в системных группах и sudoers

В любой продвинутой системе администрирования важнейшая задача - контроль за правами пользователей. Добавление в группу sudo, изменение состава wheel, docker или других критичных групп может дать пользователю слишком много полномочий. И если такие изменения проходят незамеченными - это уже уязвимость. Разберемся, как отслеживать такие события в Linux.

1️⃣ Мониторинг файла /etc/sudoers и его include-директории. Файл sudoers и его конфиги в /etc/sudoers.d/ содержат правила доступа к sudo. Для мониторинга можно использовать:

▪️ auditd (если включен):


auditctl -w /etc/sudoers -p wa -k sudoers-change
auditctl -w /etc/sudoers.d/ -p wa -k sudoers-include


Потом смотрим:


ausearch -k sudoers-change
ausearch -k sudoers-include


▪️ inotify с помощью inotifywait:


inotifywait -m /etc/sudoers /etc/sudoers.d/ -e modify,create,delete


2️⃣ Контроль изменений групп и пользователей. Изменения групп (/etc/group) и паролей (/etc/passwd, /etc/shadow) тоже критичны. Подключаем auditd:


auditctl -w /etc/group -p wa -k group-change
auditctl -w /etc/gshadow -p wa -k group-shadow


И проверяем, кто добавлен в sudo:


grep sudo /etc/group


3️⃣ Логируем команды изменения групп. Изменения через usermod, gpasswd, adduser, deluser удобно отслеживать через auditd:


auditctl -a always,exit -F arch=b64 -S usermod -S groupadd -S groupdel -S gpasswd -k group-admin


4️⃣ Альтернатива - logwatch или ossec. Можно настроить инструменты централизованного логирования и получать уведомления при любых изменениях состава групп или конфигураций sudo. Например: Logwatch, OSSEC, Wazuh, Tripwire.

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🏠 OEM-ключ Windows в BIOS: как переустановить нужную редакцию

Большинство современных ноутбуков и ПК с предустановленной Windows содержат вшитый в BIOS/UEFI OEM-ключ, который автоматически активирует систему при установке. Удобно, но не всегда.

Раньше (в эпоху win 7) использовалась SLIC-таблица в BIOS, где хранился сертификат и ключ активации. Сейчас производители используют OEM embedded key, записанный прямо в прошивку UEFI. При установке Windows установщик считывает этот ключ и автоматически выбирает редакцию, например - home.

🙅‍♂️ Проблема: если вы хотите выполнить чистую установку другой редакции windows (например, pro вместо home), то установщик пропустит выбор и установит версию, соответствующую OEM-ключу.

Решение: Чтобы заставить установщик проигнорировать вшитый ключ, добавьте на установочную флешку файл ei.cfg.

Путь:


X:\sources\ei.cfg


Содержимое файла:


[EditionID]
[Channel]
Retail


После этого при запуске установки появится меню выбора редакции, и вы сможете установить нужную версию Windows, независимо от OEM-ключа в BIOS.

#Windows #UEFI

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33
Превзошел себя

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🙈1
🎉 С днем системного администратора! 🎉

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

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

Буду короток: пусть в логах будет чисто, аптайм радует глаз, а пользователи не беспокоят в пятницу вечером. А еще - стабильных обновлений, бесшумных серверов и свободного времени для себя.

За вас, сисадмины! С праздником! 🎆

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾32👍11🔥83😁2
🔗 Коллекция приемов на чистом Bash

Если вы пишете скрипты и хотите свести количество зависимостей к минимуму - загляните в pure-bash-bible. Это подборка трюков и функций, реализующих полезные операции на чистом bash, без использования sed, awk, grep, perl и других внешних утилит. Все работает прямо внутри интерпретатора.

▪️ Пример 1. Преобразование строки в нижний регистр. Из библиотеки берём такую функцию:


lower() {
printf '%s\n' "${1,,}"
}


Создаем скрипт lower.sh:


#!/bin/bash
lower() {
printf '%s\n' "${1,,}"
}
lower "$1"


Запускаем:


$ ./lower.sh HELLO
hello


▪️ Пример 2. Получение имени файла из полного пути


basename() {
local tmp
tmp=${1%"${1##*[!/]}"}
tmp=${tmp##*/}
tmp=${tmp%"${2/"$tmp"}"}
printf '%s\n' "${tmp:-/}"
}


Скрипт basename.sh:


#!/bin/bash
basename() {
local tmp
tmp=${1%"${1##*[!/]}"}
tmp=${tmp##*/}
tmp=${tmp%"${2/"$tmp"}"}
printf '%s\n' "${tmp:-/}"
}
basename "$1"


Запуск:


$ ./basename.sh /var/log/syslog.2.gz
syslog.2.gz


В большинстве систем можно просто вызвать утилиты basename или tr, но в минималистичных окружениях (например, initrd, embedded Linux, Docker) такие функции в bash-стиле особенно ценны.

Библиотека охватывает десятки задач: обработка строк, массивов, файлов, путей, случайные числа, цвета в терминале и т.д.

Сохрани себе 😺

#bash #linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4
📂 Проверка и восстановление файловой системы

Поврежденная структура каталогов или битые иноды могут привести к потере данных или проблемам при загрузке. Для таких случаев есть проверенные временем инструменты: fsck в linux и chkdsk в windows.

🐧 Linux: fsck (file system check). fsck - утилита для проверки и восстановления файловой системы. Работает с различными типами ФС: ext2/3/4, xfs, btrfs и т.д.

▪️ Проверка и автоматическое исправление ошибок:


fsck -y /dev/sda1


▪️ Только проверка (без изменений):


fsck -n /dev/sda1


▪️ Проверка всех файловых систем, указанных в /etc/fstab, кроме смонтированных:


fsck -A


⚠️ Не запускайте fsck на смонтированных разделах - особенно тех, которые используются системой. Лучше делать это с LiveCD или в режиме восстановления.

🏠 Windows: chkdsk. chkdsk - аналогичная утилита в windows. Она проверяет раздел на наличие логических и физических ошибок, может попытаться восстановить поврежденные сектора.

▪️ Проверка и исправление ошибок:


chkdsk C: /F


▪️ Проверка с попыткой восстановления поврежденных секторов:


chkdsk D: /F /R


▪️ Назначение проверки при следующей перезагрузке (если диск системный):


chkntfs /C C:


#fsck #chkdsk

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
This media is not supported in your browser
VIEW IN TELEGRAM
Универсальная комбинация для входа в BIOS

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁34👍6🤡1