Системный администратор
Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp
Ko'proq ko'rsatish📈 Telegram kanali Системный администратор analitikasi
Системный администратор (@i_odmin) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 26 681 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 4 877-o'rinni va Rossiya mintaqasida 24 147-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 26 681 obunachiga ega bo‘ldi.
05 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 31 ga, so‘nggi 24 soatda esa 5 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 12.40% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.88% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 3 308 marta ko‘riladi; birinchi sutkada odatda 1 570 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 12 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent linux, grep, диск, строка, /var kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все для системного администратора.
По всем вопросам @evgenycarter
РКН clck.ru/3KoDXp”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 06 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
lsof (List Open Files) для подсчета открытых файлов в системе:
lsof | wc -l
Эта команда покажет общее количество открытых файлов в системе, где wc -l подсчитывает количество строк, то есть количество открытых файлов.
2. Использовать `/proc/sys/fs/file-nr` для просмотра счетчика открытых файлов:
cat /proc/sys/fs/file-nr
Этот файл содержит три числа, разделенные табуляцией:
- Первое число — текущее количество открытых файлов.
- Второе число — количество файлов, которые находятся в ожидании.
- Третье число — максимальное количество файлов, которое система может открыть.
3. Подсчитать открытые файлы для определенного процесса:
Если нужно узнать количество открытых файлов конкретного процесса, можно использовать:
lsof -p PID | wc -l
Замените PID на идентификатор процесса, который вас интересует.
4. Использовать lsof для подсчета открытых файлов конкретным пользователем:
lsof -u username | wc -l
Замените username на имя пользователя, чтобы увидеть количество открытых файлов этим пользователем.
📲 Мы в MAX
👉 @i_odminrm — рискованная операция.
Запуск rm с * — в 10 раз опаснее.
В некоторых случаях полезно заранее посмотреть, какую команду он выполнит после раскрытия шаблонов. Например:
$ echo rm -rf /*
Эта команда выведет в stdout уже развёрнутый результат — по сути, это «пробный запуск» (dry run) для rm -rf /*.
📲 Мы в MAX
👉 @i_odminbash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:
1. VAR="VALUE":
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.
- Например, если вы запустите новую команду или скрипт из текущей оболочки, VAR не будет доступна в этом дочернем процессе.
2. export VAR="VALUE":
- Команда export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.
- То есть, VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.
Для примера
# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR' # Ничего не выведет, так как VAR не экспортирована
# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR' # Выведет "Hello", так как VAR экспортирована
Таким образом, export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.
📲 Мы в MAX
👉 @i_odmin
/file print file=myFile
/file set myFile.txt contents=""
Проверка, изменился ли IP на интерфейсе
Иногда провайдер выдает динамические IP-адреса. Этот скрипт проверит, изменился ли динамический IP-адрес.
:global currentIP;
:local newIP [/ip address get [find interface="ether1"] address];
:if ($newIP != $currentIP) do={
:put "ip address $currentIP changed to $newIP";
:set currentIP $newIP;
}
Удаляем сетевую маску
Этот скрипт полезен, если вам нужен IP-адрес без сетевой маски (например, для использования в брандмауэре), но команда "/ip address get [id] address" возвращает IP-адрес вместе с маской.
:global ipaddress 10.1.101.1/24
:for i from=( [:len $ipaddress] - 1) to=0 do={
:if ( [:pick $ipaddress $i] = "/") do={
:put [:pick $ipaddress 0 $i]
}
}
Еще один, гораздо более простой способ:
:global ipaddress 10.1.101.1/24
:put [:pick $ipaddress 0 [:find $ipaddress "/"]]
Определяем имя хоста
Многие пользователи просят добавить возможность использовать DNS-имена вместо IP-адресов для RADIUS-серверов, правил брандмауэра и т.д.
Вот пример того, как определить IP-адрес RADIUS-сервера.
Предположим, что у нас настроен RADIUS-сервер:
/radius
add address=3.4.5.6 comment=myRad
А вот скрипт, который определит IP-адрес, сравнит полученный IP с настроенным и заменит его, если они не совпадают:
/system script add name="resolver" source= {
:local resolvedIP [:resolve "server.example.com"];
:local radiusID [/radius find comment="myRad"];
:local currentIP [/radius get $radiusID address];
:if ($resolvedIP != $currentIP) do={
/radius set $radiusID address=$resolvedIP;
/log info "radius ip updated";
}
}
Добавьте этот скрипт в планировщик, чтобы он выполнялся, например, каждые 5 минут.
/system scheduler add name=resolveRadiusIP on-event="resolver" interval=5m
Записать статистику очереди в несколько файлов
Рассмотрим, что названия очередей выглядят как "some text.1", чтобы мы могли искать очереди по последнему числу сразу после точки.
:local entriesPerFile 10;
:local currentQueue 0;
:local queuesInFile 0;
:local fileContent "";
#determine needed file count
:local numQueues [/queue simple print count-only] ;
:local fileCount ($numQueues / $entriesPerFile);
:if ( ($fileCount * $entriesPerFile) != $numQueues) do={
:set fileCount ($fileCount + 1);
}
#remove old files
/file remove [find name~"stats"];
:put "fileCount=$fileCount";
:for i from=1 to=$fileCount do={
#create file
/file print file="stats$i.txt";
#clear content
/file set [find name="stats$i.txt"] contents="";
:while ($queuesInFile < $entriesPerFile) do={
:if ($currentQueue < $numQueues) do={
:set currentQueue ($currentQueue +1);
:put $currentQueue ;
/queue simple
:local internalID [find name~"\\.$currentQueue\$"];
:put "internalID=$internalID";
:set fileContent ($fileContent . [get $internalID target-address] . \
" " . [get $internalID total-bytes] . "\r\n");
}
:set queuesInFile ($queuesInFile +1);
}
/file set "stats$i.txt" contents=$fileContent;
:set fileContent "";
:set queuesInFile 0;
}
📲 Мы в MAX
👉 @i_odminGet-Help <команда> – получить справку по команде
- Get-Command – список доступных команд
- Get-Command -Module <модуль> – команды из конкретного модуля
- Get-Alias – список псевдонимов команд
- Get-Process – список запущенных процессов
- Get-Service – список служб
Навигация по файловой системе
- Get-Location – текущий путь
- Set-Location <путь> – перейти к каталогу
- Get-ChildItem или ls – просмотр содержимого каталога
- New-Item -Path <путь> -Name <имя> -ItemType <тип> – создать файл или папку
Работа с файлами и папками
- Copy-Item -Path <источник> -Destination <назначение> – копировать файл/папку
- Move-Item -Path <источник> -Destination <назначение> – переместить файл/папку
- Remove-Item -Path <путь> – удалить файл/папку
- Rename-Item -Path <путь> -NewName <новое имя> – переименовать файл/папку
Работа с текстом и выводом
- Write-Output "текст" – вывод текста
- Write-Host "текст" – вывод текста на экран
- Read-Host -Prompt "вопрос" – ввод данных от пользователя
- Get-Content <файл> – чтение содержимого файла
- Set-Content <файл> – запись в файл
- Add-Content <файл> – добавление текста в файл
Переменные
- $<имя_переменной> = значение – создание переменной
- $var += значение – добавление к значению переменной
- $null – пустое значение
Условия и циклы
- if (<условие>) { <действие> } – условие if
- foreach ($item in $array) { <действие> } – цикл foreach
- while (<условие>) { <действие> } – цикл while
Работа с процессами и службами
- Start-Process <программа> – запуск программы
- Stop-Process -Name <имя> – завершение процесса
- Start-Service <служба> – запуск службы
- Stop-Service <служба> – остановка службы
Фильтрация и сортировка
- Where-Object { <условие> } – фильтрация объектов
- Sort-Object <свойство> – сортировка объектов
Примеры:
1. Получение списка файлов:
Get-ChildItem -Path "C:\папка"
2. Копирование файла:
Copy-Item -Path "C:\путь\файл.txt" -Destination "D:\копия\файл.txt"
3. Вывод чисел от 1 до 10:
for ($i = 1; $i -le 10; $i++) { Write-Output $i }
4. Фильтрация процессов по имени:
Get-Process | Where-Object { $_.Name -eq "notepad" }
📲 Мы в MAX
👉 @i_odminipconfig /flushdns
Сбросьте настройки WinSock
netsh winsock reset
Сброс настроек стека TCP/IP
netsh int ip reset
Для сброса настроек TCP/IPv6
netsh int ipv6 reset
Удалить все сетевые адаптеры
netcfg -d
Сброс всех правил Windows Defender Firewall
netsh advfirewall reset
📲 Мы в MAX
👉 @i_odmin/export — экспорт текущей конфигурации.
- /interface print — вывод списка интерфейсов.
- /ip address print — вывод списка IP-адресов.
- /ip route print — вывод таблицы маршрутизации.
- /ip firewall filter print — вывод правил файрвола.
Управление интерфейсами
- /interface enable [имя_интерфейса] — включить интерфейс.
- /interface disable [имя_интерфейса] — отключить интерфейс.
- /interface set [имя_интерфейса] mtu=1500 — изменение MTU на интерфейсе.
Управление IP-адресами
- /ip address add address=192.168.1.1/24 interface=[имя_интерфейса] — добавить IP-адрес на интерфейс.
- /ip address remove [номер] — удалить IP-адрес по номеру из списка.
Настройка маршрутизации
- /ip route add dst-address=0.0.0.0/0 gateway=[ip-шлюза] — добавить маршрут по умолчанию (интернет).
- /ip route remove [номер] — удалить маршрут.
2. Настройка DHCP:
Настройка DHCP-сервера
- /ip dhcp-server setup — пошаговая настройка DHCP-сервера.
- /ip dhcp-server print — просмотр текущих DHCP-серверов.
- /ip dhcp-server lease print — просмотр выданных IP-адресов (lease).
- /ip dhcp-server network add address=192.168.1.0/24 gateway=192.168.1.1 — добавить сеть для раздачи IP-адресов.
Настройка DHCP-клиента
- /ip dhcp-client add interface=[имя_интерфейса] — добавить DHCP-клиента на интерфейс.
- /ip dhcp-client print — просмотр DHCP-клиентов.
3. Настройка NAT (для интернета):
- /ip firewall nat add chain=srcnat action=masquerade out-interface=[интерфейс_WAN] — добавить правило NAT для выхода в интернет.
4. Настройка VLAN:
- /interface vlan add name=vlan10 vlan-id=10 interface=[имя_интерфейса] — создать VLAN с идентификатором 10 на интерфейсе.
- /interface bridge vlan add bridge=[имя_моста] tagged=[интерфейс] vlan-ids=10 — добавить VLAN в мост.
5. Настройка Firewall (Базовые правила):
- /ip firewall filter add chain=input action=accept connection-state=established,related — разрешить уже установленные соединения.
- /ip firewall filter add chain=input action=drop connection-state=invalid — отбросить невалидные пакеты.
- /ip firewall filter add chain=forward action=drop connection-state=invalid — запретить невалидные соединения в цепочке forward.
6. Настройка PPPoE (подключение к интернету через PPPoE):
- /interface pppoe-client add name=pppoe-out1 user=[логин] password=[пароль] interface=[WAN-интерфейс] — создать PPPoE-клиента.
- /ip route add gateway=pppoe-out1 — добавить маршрут через PPPoE.
7. Сохранение и восстановление конфигурации:
Сохранение:
- /system backup save name=[имя_файла] — сохранить полную конфигурацию.
- /export file=[имя_файла] — экспорт конфигурации в текстовый файл.
Восстановление:
- /system backup load name=[имя_файла] — загрузить сохраненную конфигурацию.
- /import file=[имя_файла] — импортировать текстовую конфигурацию.
8. Диагностика:
- /ping [ip-адрес] — пинг IP-адреса.
- /tool traceroute [ip-адрес] — трассировка до IP-адреса.
- /tool bandwidth-test address=[ip-адрес] direction=both — тест скорости соединения.
9. Работа с пользователями:
- /user add name=[имя_пользователя] group=full password=[пароль] — добавить пользователя с полными правами.
- /user remove [имя_пользователя] — удалить пользователя.
- /user print — показать список пользователей.
0. Операции с логами:
- /log print — просмотр последних логов.
- /log print where topics~"[firewall]" — просмотр логов по определенной теме, например, firewall.
📲 Мы в MAX
👉 @i_odmin