LinuxSkill - Сводки с прода и Шпаргалки
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4
Show more📈 Analytical overview of Telegram channel LinuxSkill - Сводки с прода и Шпаргалки
Channel LinuxSkill - Сводки с прода и Шпаргалки (@linuxskill) in the Russian language segment is an active participant. Currently, the community unites 10 936 subscribers, ranking 11 366 in the Technologies & Applications category and 59 933 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 936 subscribers.
According to the latest data from 17 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -69 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 17.14%. Within the first 24 hours after publication, content typically collects 6.41% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 874 views. Within the first day, a publication typically gains 701 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 10.
- Thematic interests: Content is focused on key topics such as docker, linux, bash, devops, скрипт.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам.
Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале.
📩 По всем вопросам: @chorapov
Зеркало в MAX: https://max.ru/LinuxSkill
РКН https://vk.cc/cMUwm4”
Thanks to the high frequency of updates (latest data received on 18 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
# curl https://get.docker.com | bash -
Подготовка файлов
# mkdir ~/prometheus && cd ~/prometheus
# touch docker-compose.yml
Docker-compose конфиг
Создай файл docker-compose.yml:
version: '3.9'
networks:
monitoring:
driver: bridge
volumes:
prometheus_data: {}
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
container_name: prometheus
hostname: prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
expose:
- 9090
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
node-exporter:
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
container_name: exporter
hostname: exporter
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
expose:
- 9100
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
grafana:
image: grafana/grafana
user: root
depends_on:
- prometheus
ports:
- 3000:3000
volumes:
- ./grafana:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
Конфиг Prometheus
Создай файл prometheus.yml:
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
scrape_timeout: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-local'
scrape_interval: 5s
static_configs:
- targets: ['node-exporter:9100']
Запуск всего стека
# docker-compose up -d
Настройка Grafana
1. Открой http://твой-ip:3000
2. Логин: admin / admin
3. Connections → Data sources → Add Prometheus
4. URL: http://prometheus:9090
5. Dashboards → New → Import
6. Введи ID: 1860 (готовый дашборд для Node Exporter)
Добавление удалённого сервера
На удалённом сервере запусти exporter:
# docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" \
prom/node-exporter:latest --path.rootfs=/host
# Проверка
# ss -tulnp | grep 9100
Добавь в prometheus.yml:
- job_name: 'node-remote'
scrape_interval: 5s
static_configs:
- targets: ['10.20.1.56:9100']
Перезапусти:
# docker compose restart
💡 Результат: полноценный мониторинг с графиками CPU, RAM, диска, сети. Всё за 10 минут без танцев с бубном!
❗️ Важно: в проде закрой порты файрволом — оставь доступ только нужным IP.
____________________
Дополнительный материал:
🧠 - Мастерство Управления Правами в Linux: От Новичка до Профи
🧠 - Максимизируйте безопасность с минимальными разрешениями в Linux
🧠 - От Slackware до Pacman: Путешествие Систем Управления Пакетами в Linux
#Linux_Mastery #мониторинг #prometheus #devops #grafana #dockernmap 192.168.1.1
nmap 192.168.1.1 192.168.2.1
nmap 192.168.1.1-254
nmap 192.168.1.0/24
Полное сканирование всех 65535 портов:
nmap 192.168.1.1 -p-
Скан хоста, игнорирующего ping:
nmap 192.168.1.1 -Pn
Техники сканирования
nmap 192.168.1.1 -sS # TCP SYN (по умолчанию)
nmap 192.168.1.1 -sT # TCP connect
nmap 192.168.1.1 -sU # UDP сканирование
# Полное TCP+UDP (очень долго!)
nmap 192.168.1.1 -sS -sU -p-
Поиск живых хостов
Обнаружение без сканирования портов:
nmap 192.168.1.1/24 -sn
ARP-сканирование в локалке (в разы быстрее!):
nmap 192.168.1.1/24 -PR
Просто список IP без проверки:
nmap 192.168.1.1-15 -sL
Определение сервисов
Быстрая проверка версий (1 порт = 1 строка):
nmap 192.168.1.1 -sV
Полный анализ (ОС, версии, скрипты, traceroute):
nmap 192.168.1.1 -A
🚀 Трюк для ускорения в 10 раз
Вместо долгого полного сканирования — сначала найди открытые порты, потом анализируй только их:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Использование:
./nmap.sh 192.168.1.1
Скорость сканирования
-T0 # paranoid (паранойдный)
-T1 # sneaky (хитрый)
-T2 # polite (вежливый)
-T3 # normal (обычный, по умолчанию)
-T4 # aggressive (для локалки)
-T5 # insane (безумный)
💡 Совет: в локальной сети смело используй -T4, для внешних хостов — -T3 или ниже.
Итог: правильные ключи = экономия времени. Особенно скрипт с двухэтапным сканированием — реально ускоряет работу в разы.
____________________
Дополнительный материал:
🧠 - Путешествие по Виртуальным Интерфейсам и Канальному Уровню в Linux: От Туннелей до Мостов
🧠 - История AppArmor: Как Linux Стал Крепостью Безопасности
🧠 - Linux Mastery: Быстрое создание пакетов файлов для тестирования
#Linux_Mastery #nmap #security #pentesting #networking #linux# mkdir /mnt/nfs
# chown nobody:nogroup /mnt/nfs
Ставим NFS сервер:
# apt install nfs-kernel-server
Настраиваем экспорт в /etc/exports:
# Для одного IP
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
# Для подсети
/mnt/nfs 10.20.1.56/24(rw,all_squash,no_subtree_check,crossmnt)
# Для нескольких IP (каждый в своей строке)
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
/mnt/nfs 10.20.1.52(rw,all_squash,no_subtree_check,crossmnt)
Перезапускаем и проверяем:
# systemctl restart nfs-server
# systemctl status nfs-server
💡 Важно: открой TCP порт 2049 в файрволе!
Настройка клиента
Ставим клиентский пакет:
# apt install nfs-common
Проверяем доступность сервера:
# showmount -e 10.20.1.36
Export list for 10.20.1.36:
/mnt/nfs 10.20.1.56
Монтируем шару:
# mkdir /mnt/nfs
# mount 10.20.1.36:/mnt/nfs /mnt/nfs
Проверяем результат:
# df -h | grep nfs
10.20.1.36:/mnt/nfs 48G 3.2G 43G 7% /mnt/nfs
# Смотрим версию протокола (должна быть v4)
# mount -t nfs4
Тестируем запись:
# echo "test" > /mnt/nfs/testfile
Для постоянного монтирования добавь в /etc/fstab:
10.20.1.36:/mnt/nfs /mnt/nfs nfs4 defaults 0 0
Результат: максимальная скорость передачи файлов между серверами. Особенно выручает для временных задач — поднял, скопировал, удалил.
____________________
Дополнительный материал:
🧠 - Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux
🧠 - Linux Mastery: Организация файлов и каталогов
🧠 - Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор
#Linux_Mastery #fileserver #nfs #linux #sysadmin #devops #performance# df -h
Ищем самые прожорливые директории:
# du -h -d 1 / | sort -hr
# du -hs /* | sort -hr
# Ограничиваем вывод топ-10
# du -h -d 1 / | sort -hr | head -10
# Топ-20 самых больших директорий
# du -hcx --max-depth=6 / | sort -rh | head -n 20
# Топ-20 самых больших файлов
# find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
> | sort -rh | head -n 20
Проверка inodes
Иногда место есть, но закончились inodes:
# df -ih
Охота на файлы-призраки
Ситуация: du показывает мало занятого места, но df говорит "диск полный". Причина — удалённые файлы, которые держит процесс:
# lsof | grep '(deleted)'
# lsof +L1
Нашли большие deleted-файлы? Перезапусти службу или убей процесс через kill -9 <pid>.
Ловушка с точками монтирования
Хитрый случай: скрипт должен был писать в смонтированный диск /mnt/backup, но диск не подключился. Файлы записались в локальную систему и теперь скрыты под точкой монтирования!
Как проверить:
1. Отмонтируй диск временно
2. Загляни в директорию
3. Удали мусор
4. Примонтируй обратно
Профилактика: всегда проверяй успешность монтирования перед записью данных в скриптах.
💡 Итог: 90% проблем с местом решаются этими командами. Сохрани и используй при первых признаках "disk full".
____________________
Дополнительный материал:
🧠 - Осваиваем RAID Массивы в Linux: Путь к Надежности и Производительности
🧠 - История OpenSUSE: От Зеленого Ящерика к Глобальному Сообществу
🧠 - Разблокируем секреты Linux: Специальные разрешения файлов
#Linux_Mastery #bash #terminal #linux #sysadmin #troubleshooting #storage#!/bin/bash
# Проверка аргументов
if [ $# -eq 0 ]; then
echo "Usage: $(basename $0) -mnopqrs"
exit 1
fi
# Парсинг опций
while getopts ":mnopq:rs" Option; do
case $Option in
m ) echo "Опция -m активна";;
n|o ) echo "Опция -$Option активна";;
p ) echo "Опция -p активна";;
q ) echo "Опция -q с аргументом: $OPTARG";;
r|s ) echo "Опция -$Option";;
* ) echo "Неверная опция";;
esac
done
# Сдвиг к не-опциям
shift $(($OPTIND - 1))
## 💡 Как работает:
- :mnopq:rs — строка опций (: после q = требует аргумент)
- $OPTARG — значение для опции с аргументом
- $OPTIND — индекс следующего аргумента
## 🚀 Примеры вызова:
./script.sh -m -n
./script.sh -mn # можно слитно!
./script.sh -q "значение"
./script.sh -mnop -q test
## 📌 Бонус — импорт функций:
# Загружаем общие функции
source /path/to/common_functions.sh
# или
. ./config.sh
Теперь твои скрипты выглядят как настоящие Linux-утилиты!
____________________
Дополнительный материал:
🧠 - Командный центр Linux: Ваше руководство по базовым консольным программам
🧠 - Защитный барьер Linux: Как система обеспечивает безопасность пользователей и групп
🧠 - Мастер-класс по консольным программам Linux: Разбираемся с UID и GID
#bash_guide #bash #getopts #cli #scripting #Linux #arguments# Установка одной строкой
curl -o - https://get.docker.com | bash -
📦 Управление контейнерами:
Запуск с автостартом:
docker run -d -p 80:80 --restart always --name nginx-proxy nginx
Просмотр контейнеров:
docker ps # запущенные
docker ps -a # все
Удаление:
docker rm nginx-proxy # остановленный
docker rm -f nginx-proxy # принудительно
Массовые операции:
# Остановить все
docker stop $(docker ps -a -q)
# Удалить все
docker rm $(docker ps -a -q)
🖼️ Работа с образами:
docker images # список
docker rmi nginx # удалить один
docker rmi $(docker images -a -q) # удалить все
🔍 Отладка и мониторинг:
Войти в контейнер:
docker exec -it nginx-proxy bash
Логи:
docker logs nginx-proxy # все логи
docker logs -n 100 nginx-proxy # последние 100 строк
docker logs -f nginx-proxy # следить в реальном времени
Мониторинг ресурсов:
docker stats nginx-proxy
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Процессы в контейнере:
docker top nginx-proxy
🛠️ Продвинутые команды:
Детальная информация:
docker inspect nginx-proxy
docker inspect -f '{{ .NetworkSettings.Networks.bridge.IPAddress }}' nginx-proxy
docker inspect --format '{{json .Mounts}}' grafana | jq .
Управление местом:
docker system df # занятое место
docker system prune # очистка
Копирование файлов:
# Из контейнера
docker cp nginx-proxy:/etc/nginx/nginx.conf ~/nginx
# В контейнер
docker cp ~/nginx/nginx.conf nginx-proxy:/etc/nginx
Экспорт контейнера:
docker export nginx-proxy -o ~/nginx-proxy.tar.gz
📚 Бонус — полезные темы:
🔧 Инструменты: Portainer, ctop, cdebug
🛡️ Безопасность: Trivy, Dockle, CIS рекомендации
📊 Мониторинг: Zabbix, Prometheus
🗃️ Бэкапы: docker-volume-backup
Теперь у тебя есть всё для работы с Docker. Эти команды покрывают 90% повседневных задач!
____________________
Дополнительный материал:
🧠 - Открытый мир Linux: Сокровищница инструментов для системных администраторов
🧠 - Стартуйте в IT с Бесплатным курсом по Linux: от Нуля до DevOps
🧠 - От /etc/passwd к централизованному управлению: Как Linux трансформировал учетные записи
#Linux_Mastery #docker #DevOps #containers #Linux #подборка #automation#!/bin/bash
# Убийца процессов по имени
E_BADARGS=66
if test -z "$1"; then
echo "Usage: $(basename $0) имя_процесса"
exit $E_BADARGS
fi
PROCESS_NAME="$1"
# Магическая строка
ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2>/dev/null
exit $?
💡 Как работает магия:
- ps ax — список всех процессов
- grep — фильтруем по имени
- awk '{print $1}' — извлекаем PID
- xargs -i kill {} — убиваем каждый процесс
🚀 Использование:
# Убить все Chrome
./kill-byname.sh chrome
# Закрыть все терминалы
./kill-byname.sh xterm
# Остановить Firefox
./kill-byname.sh firefox
⚠️ ВНИМАНИЕ:
Скрипт опасен! Особенно под root. Можешь случайно убить системные процессы.
💡 Альтернативы:
# Если есть killall
killall chrome
# Через pkill
pkill -f chrome
# Через pidof
kill $(pidof chrome)
Теперь ты можешь массово управлять процессами даже на минимальной системе!
____________________
Дополнительный материал:
🧠 - Революция в управлении дисковым пространством: Встречайте topdiskconsumer
🧠 - Все о группах в Linux: Почему это важно для каждого пользователя?
🧠 - Энциклопедия Docker: Незаменимые инструменты для системных администраторов
#bash_guide #bash #process #kill #Linux #sysadmin #script# Посмотреть доступные интерфейсы
tcpdump -D
Базовый перехват:
# Все интерфейсы без резолва имён (-nn это важно!)
tcpdump -nn -i any
# Конкретный интерфейс
tcpdump -nn -i ens3
🔧 Главный лайфхак — исключаем SSH:
# SSH забивает вывод? Исключаем порт 22
tcpdump -nn -i any port not 22
📡 Фильтруем по адресам:
# Трафик к конкретному адресу
tcpdump -nn dst 8.8.8.8
# К нескольким адресам
tcpdump -nn dst 8.8.8.8 or dst 8.8.4.4
# Комбо: адрес + порт
tcpdump -nn dst 8.8.8.8 and port 53
🎯 Работа с протоколами:
# Только ARP
tcpdump arp -nn -i any
# Всё, кроме ARP
tcpdump not arp -nn -i any
# Исключаем несколько протоколов
tcpdump not arp and not icmp -nn -i any
💡 Реальный пример из жизни:
Отладка SIP-трафика через VPN:
tcpdump -nn -i tun4 src 10.1.4.23 and dst 10.1.3.205 and port 5060
🚀 Про-совет:
Большой поток? Сохраняй в файл:
tcpdump -nn -i any > ~/tcpdump.txt
Что искать в выводе:
IP 10.8.2.2.13083 > 10.8.2.3.8118Читается: IP источник.порт > получатель.порт Вот и всё! Этих команд хватает для 90% задач. tcpdump выглядит страшно, но на деле нужно только видеть, откуда и куда идут пакеты. ____________________ Дополнительный материал: 🧠 - Linux Systemd: Искусство мониторинга служб 🧠 - Linux Systemd: Мастер-класс по управлению службами 🧠 - Linux Systemd: Как стать магистром служб #Linux_Mastery #network #tcpdump #Linux #DevOps #networking #debug
Available now! Telegram Research 2025 — the year's key insights 
