ch
Feedback
LinuxSkill - Сводки с прода и Шпаргалки

LinuxSkill - Сводки с прода и Шпаргалки

前往频道在 Telegram

Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4

显示更多

📈 Telegram 频道 LinuxSkill - Сводки с прода и Шпаргалки 的分析概览

频道 LinuxSkill - Сводки с прода и Шпаргалки (@linuxskill) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 10 743 名订阅者,在 技术与应用 类别中位列第 11 101,并在 俄罗斯 地区排名第 59 272

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 10 743 名订阅者。

根据 31 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -51,过去 24 小时变化为 -5,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 11.78%。内容发布后 24 小时内通常能获得 4.80% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 1 265 次浏览,首日通常累积 516 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 4
  • 主题关注点: 内容集中在 docker, linux, bash, devops, скрипт 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4

凭借高频更新(最新数据采集于 01 九月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

10 743
订阅者
-524 小时
-177 天
-5130 天
帖子存档
Как получить длину строковой переменной ${string}?
Anonymous voting

Какая переменная хранит код возврата (exit status) последней выполненной команды?
Anonymous voting

💡 select + dialog: Создаём админ-меню прямо в консоли Хей, гуру Linux-оболочки! Ты тратишь время на медленный Web-GUI для рутинных задач (например, перезапуск служб)? Используй команду select для создания интерактивного TUI-меню.
# 1. Задаем приглашение к вводу (PS3)
PS3='Выберите действие: ' 

# 2. Создаем TUI-меню с помощью select
select ACTION in 'Restart Proxy' 'Check Load' 'Exit'
do
    # Выполняем команду, соответствующую выбору
    case $ACTION in
        'Restart Proxy') 
            # Перезапускаем службу proxy
            systemctl restart proxy.service ;;
        'Check Load') 
            # Проверяем загрузку системы (Load Average)
            uptime ;;
        'Exit') 
            # Выход из цикла
            break ;;
    esac
done
Вывод: select позволяет тебе быстро выбрать и выполнить команду прямо в консоли. #TUI #CLI #Bash #Утилиты

🔥 3 метрики в SSH-баннере: Скрипт для Production Привет, повелитель терминала! Тратить время на ввод uptime и free при каждом SSH-входе, чтобы оценить состояние сервера. Добавь этот динамический скрипт в свой ~/.bashrc (или /etc/profile), и ты получишь мгновенную оценку Load Average, RAM и IP-адреса, используя встроенный документ (here document). ⚙️ Скрипт: Динамический MOTD (Message of the Day) Скрипт использует подстановку команд $(...) (предпочтительная нотация вместо обратных кавычек ` ``) для сбора метрик и форматированный встроенный документ для их вывода.
#!/bin/bash
# -------------------------------------------------------------
# 1. Сбор системных метрик
# -------------------------------------------------------------

# Получаем локальный IP-адрес сервера (первый в списке)
SERVER_IP=$(hostname -I | awk '{print $1}')

# Получаем Load Average за 1 минуту.
# Средняя загрузка (Load Average) — это количество процессов, 
# ожидающих ЦПУ или дискового ввода/вывода. 
# Мы считываем метрики из псевдофайла /proc/loadavg, 
# извлекая первое поле (1-минутное значение).
LOAD_AVG=$(cut -d " " -f1 /proc/loadavg)

# Получаем использованную/общую RAM в "человекочитаемом" виде.
# Используем команду `free` для статистики виртуальной памяти.
# AWK используется для извлечения 3-го и 2-го столбцов строки "Mem:"
RAM_USED_TOTAL=$(free -h | awk '/Mem:/ {print $3 "/" $2}')

# -------------------------------------------------------------
# 2. Вывод баннера с помощью Встроенного Документа (Here Document)
# -------------------------------------------------------------

# Конструкция 'cat << EOF' создает встроенный документ.
# Встроенные документы поддерживают подстановку параметров, если
# ограничитель (EOF) не экранирован.

cat << EOF 

=============================================
 🛡️ SYSTEM HEALTH CHECK | USER: $(whoami)
=============================================
 🚀 Локальный IP:    $SERVER_IP
 ⏱️ Load Average 1m: $LOAD_AVG
 💾 RAM (Used/Total): $RAM_USED_TOTAL
---------------------------------------------

EOF
Вывод: Вставь этот код в конец своего файла ~/.bashrc. Таким образом, ты увидишь здоровье сервера сразу после подключения, не используя команды вроде top или vmstat. Помни, что stat также может давать подробную информацию о файле или каталоге, включая размер, права доступа, и временные метки (доступ, модификация, изменение статуса). #Bash #Скрипты #SSH #CLI #Мониторинг

❓ Контейнеры разрастаются, а инфраструктура уже не поддаётся контролю? 😬 Каждое развертывание — как мини-квест. Отказоустойч
Контейнеры разрастаются, а инфраструктура уже не поддаётся контролю? 😬 Каждое развертывание — как мини-квест. Отказоустойчивость под вопросом, DevOps-циклы затянуты, а масштабирование напоминает ручную магию. Kubernetes вроде бы должен всё решать, но на практике сложностей только больше. 👩‍💻 Онлайн-курс «Инфраструктурная платформа на основе Kubernetes» поможет вам: - Автоматизировать управление контейнерами и масштабирование - Освоить DevOps-подход «инфраструктура как код» - Подготовиться к сертификации CNCF (CKA и CKAD) Практикующие эксперты, актуальная программа, разбор нюансов эксплуатации K8s и бонус: подготовительный курс по Linux. ➡️ Пройдите короткое вступительное тестирование и присоединяйтесь к группе: https://otus.pw/bmFr/ 🎄 Учитесь в новом году по старым ценам! Максимальная скидка 30% на обучение до 21.12.2025: 1 курс — тающая скидка 15% до 21.12 2 курса −25%, 3 курса −30% Учиться системно — выгоднее! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🔑 Секрет Satisfy: IP-доступ без пароля для админов Эй, Bash-архитектор! Тебе нужна гибкая аутентификация (IP ИЛИ пароль)? Директива Satisfy any позволяет тебе обходить Basic Auth для внутренних IP, не требуя пароля.
# Конфигурация Nginx/Angie (Location Block)
# Внимание: Basic Auth небезопасна без HTTPS
location /admin/ {
    # 1. Настройка аутентификации
    auth_basic "Restricted Zone";
    auth_basic_user_file /etc/nginx/.htpasswd; 

    # 2. Правила доступа по IP
    allow 192.168.1.10; # Разрешить админу
    deny all;

    # 3. Ключевой хак: достаточно одного условия
    satisfy any;
}
Вывод: Если IP совпадает, сервер не спросит пароль. #Nginx #Хаки #Security #CLI #МиниГайд

🤯 CLI-гайд: 7 команд, которые делают "грязную" работу за тебя Привет, гуру Linux-оболочки! Ты тратишь время на рутину: многострочный поиск, управление ресурсами и сбор метаданных. Эти утилиты позволяют тебе быстро решать сложные задачи, избегая написания длинных скриптов. 1. ⚙️ stat: Вся информация о файле stat выдает подробную и многословную статистику о заданном файле, каталоге или устройстве. Сюда входит тип файла, права доступа, inode, размер и время.
# Получить детальные метаданные о файле
stat /etc/passwd

# Извлечь конкретные данные (например, inode и тип файла)
# -c%i - inode number, -c%F - file type
stat -c%i,%F /etc/passwd
stat используется, чтобы быстро получить всю информацию, включая время последнего доступа (atime), модификации (mtime) или изменения статуса (ctime). 2. 🚀 xargs: Параллельное выполнение команд Используй xargs для передачи аргументов команде из потока ввода (stdin), что особенно полезно, когда список аргументов слишком длинный для обычной подстановки.
# Найти все файлы *.log и удалить их, даже если их миллион
find /var/log/ -name "*.log" -print0 | xargs -0 rm -f

# Найти все .mp3-файлы и вывести их размер (с использованием xargs)
find ~/ -name "*.mp3" -print0 | xargs -0 du -h
xargs разбивает поток данных на достаточно маленькие блоки для обработки, что позволяет тебе ускорить операции с большим количеством файлов. 3. 💾 mktemp: Создание безопасного временного файла Всегда создавай временные файлы с помощью mktemp для обеспечения "уникального" имени файла. Это предотвращает атаки, связанные с гонкой (race condition).
# Создать временный файл в /tmp с уникальным именем
TMP_FILE=$(mktemp)
echo "Рабочие данные" > $TMP_FILE

# После использования, не забудь удалить
rm $TMP_FILE
Когда mktemp вызывается без аргументов, он создает файл нулевой длины в /tmp. 4. 🔗 lsof: Найди, что держит ресурс Если ты не можешь размонтировать файловую систему (umount fails), lsof показывает все открытые файлы и связанные с ними процессы.
# Узнать, какие процессы используют директорию /mnt/data
lsof /mnt/data

# Показать, какие процессы открыли файл /usr/bin/vim
fuser -u /usr/bin/vim
lsof помогает тебе определить, какие файлы все еще открыты, чтобы ты мог безопасно убить соответствующие процессы. 5. 🔑 which, whereis, whatis: Быстрый поиск документации Эти три команды помогают тебе быстро найти исполняемый файл или узнать его назначение, что критически важно при работе в новой системе:
# Показать полный путь к исполняемому файлу (только bin)
which rm 
# Вывод: /usr/bin/rm

# Показать путь к bin, исходникам И man-странице
whereis rm
# Вывод: rm: /bin/rm /usr/share/man/man1/rm.1.bz2

# Получить краткое описание команды из базы данных whatis
whatis whatis
# Вывод: whatis (1) - search the whatis database for complete words
6. 📊 Комбинирование: cut, sort, uniq Используй эти три фильтра вместе для анализа структурированных текстовых файлов или вывода команд (например, /etc/passwd).
# Найти 5 самых популярных оболочек в системе
cut -d':' -f7 /etc/passwd | sort | uniq -c | sort -rn | head -5
# cut -d':' -f7: извлекает поле 7 (оболочку).
# sort: сортирует, чтобы uniq работал.
# uniq -c: подсчитывает последовательные дубликаты.
# sort -rn: сортирует в обратном порядке по числам (самые популярные сверху).
💡 Вывод Эти хаки и утилиты — настоящий золотой фонд командной строки. Используя xargs, stat и связку фильтров (cut, sort, uniq), ты сможешь превратить рутинные задачи в быстрые однострочники. #Шпаргалка #Хаки #CLI #Bash #Скрипт #Утилиты

🔥 Открытый урок «Принцип DRY в GitLab CI: как избавиться от дублирования и навести порядок в пайплайнах». 🗓 18 декабря в 20
🔥 Открытый урок «Принцип DRY в GitLab CI: как избавиться от дублирования и навести порядок в пайплайнах». 🗓 18 декабря в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab». На вебинаре разберем: ✔️Что такое DRY в контексте CI/CD и зачем его применять. ✔️Организация пайплайнов: как структурировать .gitlab-ci.yml, чтобы не утонуть в дублировании. ✔️Include и extends — мощные механизмы переиспользования кода. ✔️ Как создать единые шаблоны пайплайнов для нескольких проектов. ✔️Антипаттерны: что ломает читаемость и поддерживаемость CI-конфигураций. После вебинара вы сможете: - Навести порядок в .gitlab-ci.yml и убрать дублирование шагов. - Создавать гибкие, масштабируемые пайплайны для разных проектов. - Стандартизировать CI/CD-процессы в команде без потери гибкости. 🔗 Ссылка на регистрацию: https://otus.pw/J0v8/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🔧 Multipass: Запусти Ubuntu VM 3 командами (CLI-гайд) Привет, мастер командной строки! Тебе нужна быстрая песочница Ubuntu для тестов? Multipass позволяет тебе запустить VM с предустановленным Docker за минуту. 1. Запуск виртуалки с Docker Используй образ docker и задай имя (например, node1).
# Создаем и запускаем VM с Docker pre-installed
multipass launch docker --name node1
2. Проверка и подключение Убедись, что она запущена, и подключись.
# Проверить статус, имя и IP-адрес VM
multipass ls 

# Подключиться к виртуальной машине (ты войдёшь в неё)
multipass shell node1 

# Выход из сеанса оболочки (без выключения машины)
exit
Вывод: Используя всего три команды (launch, ls, shell), ты можешь получить готовую среду для работы. #Утилиты #CLI #Виртуализация #Multipass

Какая конструкция позволяет использовать значение по умолчанию, если переменная не установлена или пуста?
Anonymous voting

Какой символ используется для обозначения начала комментария в Bash-скрипте (кроме первой строки shebang)?
Anonymous voting

🔥 Load Average: Когда «цифра» значит «Срочно чини!» Привет, системный траблшутер! Как понять, когда Load Average (LA) реально опасен?. Критическая нагрузка — это число ядер твоего ЦПУ. Если LA > NCPU, то пора чинить!
# 1. Узнай свой лимит: Количество логических процессоров (ядер)
# Информация берется из системного псевдофайла
NCPU=$(grep -c '^processor' /proc/cpuinfo) 
echo "Твой лимит (NCPU): $NCPU"

# 2. Проверь текущую среднюю загрузку (за 1, 5, 15 минут)
uptime 
# Load Average включает процессы, ожидающие ЦПУ ИЛИ Disk I/O

# 3. Пример сравнения: если LA за 1 мин выше лимита NCPU
CURRENT_LOAD=$(cat /proc/loadavg | cut -d ' ' -f1)
if (( $(echo "$CURRENT_LOAD > $NCPU" | bc -l) )); then 
    echo "🚨 СЕРВЕР ПЕРЕГРУЖЕН: $CURRENT_LOAD > $NCPU"
fi
Вывод: Если LA стабильно выше числа ядер, система насыщена. #Мониторинг #CLI #LoadAverage #Кейс

❕ Бесплатный вебинар: «GitOps + Flux — ваш путь к автоматизированному деплою в Kubernetes»! Вы хотите развернуть приложение в
Бесплатный вебинар: «GitOps + Flux — ваш путь к автоматизированному деплою в Kubernetes»! Вы хотите развернуть приложение в Kubernetes без тонны ручных команд и нервов? Мечтаете о системе, где код сам «доставляется» в прод по принципу «закоммитил — заработало»? Приглашаем вас на открытый урок в рамках курса «Инфраструктурная платформа на основе Kubernetes, где разберём»: - как перестать вручную деплоить приложения; - как добиться стабильного состояния кластера; - как сделать процессы прозрачными и контролируемыми. 🗓 Когда: 23.12, в 20-00 Для кого: DevOps‑инженеры, разработчики, администраторы Kubernetes, все, кто хочет автоматизировать деплой. На уроке вы узнаете: 💚 Что такое GitOps и почему это новый стандарт работы с Kubernetes. 💚 Как Flux автоматизирует синхронизацию кластера с Git‑репозиторием. 💚Практические примеры настройки Flux для реальных сценариев. 💚Как избежать типичных ошибок при внедрении GitOps. 💚Какие преимущества даёт подход «конфигурация как код». После урока вы сможете: - настроить базовый пайплайн GitOps с Flux; - понять, как интегрировать Flux в существующую инфраструктуру; - оценить, подходит ли GitOps для вашего проекта. ➡️ Регистрирация: https://otus.pw/u7Na/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

⚠️ Антигайд: Как ntpdate убивает твой Dovecot и что делать Привет, инженер автоматизации! Ты знал, что NTP-синхронизация может мгновенно "убить" Dovecot? Резкий перевод часов назад приводит к его аварийному завершению. Используй плавную синхронизацию (ntpd/chrony) или перезапускай сервис.
# 1. Если ты используешь ntpdate, Dovecot рухнет (особенно при переводе часов назад)
# Пример опасной команды:
# ntpdate -u pool.ntp.org 

# 2. Правильное действие: останавливаем, синхронизируем, запускаем
sudo systemctl stop dovecot.service 
sudo ntpdate pool.ntp.org 
sudo systemctl restart dovecot.service
Вывод: Перед выполнением ntpdate рекомендуется завершать Dovecot и запускать заново. #Антигайд #Dovecot #NTP #Безопасность #systemd

systemctl – 5 команд, которые должен знать каждый DevOps-инженер Привет, инженер автоматизации! Если ты переходишь с SysVinit на systemd, тебе нужен надёжный командник для быстрого траблшутинга и управления сервисами. Команда systemctl — это твой универсальный диспетчер. Вот 5 ключевых функций, которые ты будешь использовать каждый день. 1. 🔍 Полный статус сервиса Эта команда показывает, активен ли сервис, его PID, потребление ресурсов (CGroup, Memory, CPU) и последние строки логов.
# Получить детальную информацию о веб-сервере Nginx
systemctl status nginx.service
# PID, CGroup, Memory, CPU - важные данные для траблшутинга
2. 🚀 Включение и активация (autostart) systemctl enable создаёт символическую ссылку, чтобы сервис запускался при загрузке системы. Флаг --now сразу запускает его.
# Включить автозапуск SSHD при загрузке и немедленно запустить
sudo systemctl enable --now sshd.service

# Проверить, включен ли сервис для автозапуска
systemctl is-enabled sshd.service 
3. 💾 Применение новой конфигурации без перезапуска Если ты изменил конфигурационный файл (например, /etc/ssh/sshd_config), тебе нужно, чтобы демон перечитал его, не прерывая работу.
# Перезагрузка конфигурации systemd, чтобы обнаружить изменения в юнит-файлах
sudo systemctl daemon-reload
# Перезагрузить конфигурацию самого сервиса (без полного restart)
sudo systemctl reload sshd.service 
4. 📈 Анализ скорости загрузки (Boot Performance) Если система загружается медленно, эта команда покажет тебе, какие юниты (сервисы) потребляют больше всего времени.
# Вывести список процессов, отсортированных по времени запуска
systemd-analyze blame 

# Посмотреть общее время, потраченное на загрузку ядра и userspace
systemd-analyze time 
5. 📜 Просмотр всех файлов юнитов Для DevOps критически важно знать, какие сервисы вообще установлены в системе и в каком они состоянии (включен/выключен).
# Вывести список всех установленных файлов модулей типа service и их состояние (enabled/disabled/static/masked)
systemctl list-unit-files --type=service
💡 Вывод Команда systemctl — это центральный инструмент для твоей работы в Linux. Используя status для детальной проверки, reload для безопасных обновлений и systemd-analyze blame для диагностики, ты можешь эффективно управлять production-средой. #DevOps #systemd #systemctl #CLI #Автоматизация

🔐 Секреты Pro-Docker: 4 хака, которые сделают твои образы в 5 раз меньше Привет, контейнерный гуру! Твои Docker-образы слишком большие и могут нести угрозу безопасности?. Я собрал 4 критически важных приёма для hardening-а и оптимизации, которые должен знать каждый, кто работает с Docker в продакшене. 1. ⚙️ Оптимизация слоёв: Уменьши размер в 71% Каждая инструкция RUN в Dockerfile создает новый уровень (слой), что раздувает конечный размер образа. Чтобы избежать этого, используй оператор && для объединения команд в одну инструкцию RUN.
# ПЛОХО: Создаст 3 слоя
RUN apt-get update
RUN apt-get install -y nodejs
RUN rm -rf /var/lib/apt/lists/*

# ХОРОШО: Создаст 1 слой и уменьшит размер образа
FROM alpine:3.12.0
RUN apk update && \
    apk add --no-cache nodejs npm && \
    rm -rf /var/cache/apk/*
# Используй --no-cache, чтобы не хранить временные файлы
За счет перехода на минимальные базовые образы (например, Alpine) и объединения команд ты можешь уменьшить размер образа на 71%. 2. 🛡 Безопасность: Запуск без root и CAP_DROP Никогда не запускай контейнер с флагом --privileged, так как это равносильно получению прав root на хосте, позволяя, например, смонтировать его корневую ФС. Всегда переключайся на непривилегированного пользователя внутри контейнера.
# Создаем непривилегированного пользователя 'app'
# Используй инструкцию USER, чтобы избежать root
RUN groupadd -r app_grp && useradd -r -g app_grp app
USER app 

# Если нужны только специфические права (например, bind к порту < 1024):
# Сбрось ВСЕ права (--cap-drop all) и добавь только необходимые
docker run --cap-drop ALL --cap-add CAP_NET_BIND_SERVICE alpine sh
Ограничение возможностей (Capabilities) — ключевой принцип безопасности, так как root в Linux — это коллекция возможностей, и Docker позволяет тебе их выборочно отключить. 3. 💾 Очистка: Удали висячий мусор Если ты не удаляешь остановленные контейнеры или висячие образы (dangling images), они будут накапливаться и занимать дисковое пространство.
# Удаление всех остановленных контейнеров
# docker rm $(docker ps -aq -f status=exited)
docker rm $(docker ps -aq) -f

# Удаление всех висячих (без тегов) образов
docker rmi $(docker images -q -f dangling=true)

# Очистка всего Docker-мусора (образов, сетей, контейнеров)
# Используй с осторожностью, это удалит ВСЁ, что не используется
docker system prune -a
Используй docker system prune -a для быстрой очистки, но помни, что тома (volumes) не удаляются автоматически и требуют отдельной очистки, если они не используются. 4. 🧠 Ограничение ресурсов: Защита от DoS-атак Ограничивай использование ресурсов с помощью cgroups, чтобы взломанный контейнер не смог вызвать отказ в обслуживании (DoS), исчерпав память или CPU хоста.
# Ограничение памяти (128 МБ)
# -m 128m задает жесткий лимит, предотвращая OOM на хосте
docker run -it --rm -m 128m my_app

# Ограничение использования CPU (на 2 CPU или 50% CPU-времени)
docker run -it --rm --cpus="2" my_app
# или, используя доли CFS:
docker run -d --name load_high -c 512 amouat/stress
Вывод: Применение этих практик (минимальные образы, непривилегированные пользователи и ограничения ресурсов) — это не просто оптимизация, это создание надёжной архитектуры, которую ты можешь смело развертывать в production. #Docker #DevOps #Security #Hardening #Optimization #CLI #Сборник

🔥 Открытый урок «Terraform: как работать с ним через GitLab». 🗓 11 декабря в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта к
🔥 Открытый урок «Terraform: как работать с ним через GitLab». 🗓 11 декабря в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab». На вебинаре разберем: ✔️ Как использовать Terraform для управления инфраструктурой как кодом (IaC). ✔️ Настройку CI/CD-процессов в GitLab для работы с Terraform. ✔️ Лучшие практики разграничения окружения и управления конфигурацией. Кому будет полезно: - DevOps-лидам, управляющим инфраструктурой и CI/CD. - Архитекторам, разрабатывающим стратегии инфраструктурной автоматизации. - Инженерам, внедряющим Terraform в рабочие процессы. Что вы получите: - Понимание, Terraform-модули для работы через GitLab. - Понимание, настройка и оптимизация пайплайнов CI/CD . - Практические советы по безопасному и эффективному управлению инфраструктурой . 🔗 Ссылка на регистрацию: https://otus.pw/kKbj/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

💾 Bash-антигайд: Удаляй tmp-файлы даже после kill -9 Хей, защитник хоста! Если твой скрипт аварийно завершается, временные файлы (/tmp) остаются. Чтобы гарантировать удаление, используй ловушку EXIT.
#!/bin/bash
# Создай уникальное имя для временного файла
TMP_FILE=$(mktemp) 

# 1. Ловушка EXIT (сигнал 0) сработает при ЛЮБОМ выходе
trap "rm -f $TMP_FILE" EXIT

# 2. Здесь идет твой основной код
echo "Лог пишется в $TMP_FILE" >> $TMP_FILE 

# 3. Дополнительно можно перехватить SIGINT (2) и SIGTERM (15)
trap "rm -f $TMP_FILE; exit 1" INT TERM
Вывод: trap...EXIT обеспечивает, что функция очистки выполнится всегда, даже при ошибке. #Bash #Автоматизация #Скрипты #trap #CLI

Как правильно присвоить значение переменной в Bash?
Anonymous voting

🚀 Встречайте новый формат в @Gradeliftbot — Спринт! Хотите проверить свои знания по Linux быстро и эффективно? Теперь в нашем боте доступен режим "Спринт" — 20 случайных вопросов из базы в 1500+ тестов! 👉 Попробовать @Gradeliftbot