LinuxSkill - Сводки с прода и Шпаргалки
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4
نمایش بیشتر📈 تحلیل کانال تلگرام LinuxSkill - Сводки с прода и Шпаргалки
کانال LinuxSkill - Сводки с прода и Шпаргалки (@linuxskill) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 10 740 مشترک است و جایگاه 11 158 را در دسته فناوری و برنامهها و رتبه 59 600 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 740 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 02 سپتامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -53 و در ۲۴ ساعت گذشته برابر -3 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 11.96% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.94% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 285 بازدید دریافت میکند. در اولین روز معمولاً 531 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 4 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند docker, linux, bash, devops, скрипт تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам.
Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале.
📩 По всем вопросам: @chorapov
Зеркало в MAX: https://max.ru/LinuxSkill
РКН https://vk.cc/cMUwm4”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 03 سپتامبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
# python3 -m http.server 8000
## Апгрейд до HTTPS
Генерируем самоподписный сертификат:
# openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes
Создаём файл webserver.py:
import http.server, ssl
server_address = ('172.20.0.210', 8000)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,server_side=True,certfile='localhost.pem',ssl_version=ssl.PROTOCOL_TLSv1_2)
httpd.serve_forever()
Запускаем HTTPS сервер:
# python3 webserver.py
Проверяем:
# Открываем в браузере
https://172.20.0.210:8000
Что получаем:
- Полноценный HTTPS сервер для тестов
- Файловый браузер по умолчанию
- Или веб-страница, если есть index.html
- Никаких конфигов и лишней возни
💡 Где пригодится:
- Тестирование приложений, требующих HTTPS
- Быстрая передача файлов по защищённому каналу
- Временный сервер для демо
- Проверка SSL/TLS настроек
Совет: сохрани скрипт в /usr/local/bin/ и используй как команду для быстрого запуска HTTPS где угодно.
____________________
Дополнительный материал:
🧠 - Открываем тайны Linux: Почему скрыть файлы от пользователя root невозможно?
🧠 - Как Создать Идеальный Dockerfile: Секреты Эффективности и Лаконичности
🧠 - Ускоряем YouTube и обходим блокировки на Linux: Ваше руководство
#Linux_Mastery #webserver #python #https #quickfix #sysadmin# docker pull nginx:latest
# docker create --name nginx nginx:latest
Теперь копируем нужный файл:
# docker cp nginx:/docker-entrypoint.d/30-tune-worker-processes.sh ~/
Или выгружаем весь образ:
# docker export nginx -o ~/nginx-docker.tar.gz
Dive — рентген для образов
Утилита показывает слои образа и что в каждом слое изменилось. Запускаем прямо в Docker:
# docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock \
wagoodman/dive nginx:latest
Создаём alias для удобства:
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
Теперь просто:
# dive nginx:latest
Проверка раздутости образа
Вместо docker build используй dive build — получишь анализ эффективности сборки:
# dive build -t myapp:latest .
Dive покажет:
- Размер каждого слоя
- Что добавилось/удалилось
- Efficiency Score образа
- Wasted Space (лишнее место)
💡 Фишка: встрой проверку в CI/CD — автоматически отлавливай неоптимальные образы.
Итог: Docker создан для изоляции, поэтому прямого доступа к файлам нет. Но способы есть — используй их правильно.
____________________
Дополнительный материал:
🧠 - Linux Essentials: Понимание относительных и абсолютных путей к файлам
🧠 - Открытие Rancher: Путешествие от Стартапа до Лидера в Контейнеризации
🧠 - Осваиваем Docker: Искусство Сборки Образов и Управления Сетью
#Linux_Mastery #docker #devops #containers #optimization# 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