Как гарантировать, что скрипт или команда не запустится дважды?
Часто
PID-файлы — ненадёжны.
Проверки через
В Linux есть решение —
Запустить команду, только если она ещё не выполняется:
Если блокировка занят,
Для скриптов ещё надёжнее:
С этого момента гарантированно: только один экземпляр, блокировка снимается автоматически при
🔥
➡️ DevOps Ready | #совет
Часто
cron запускается повторно, деплой стартует дважды, скрипт пересекается сам с собой.PID-файлы — ненадёжны.
Проверки через
ps — гонки.В Linux есть решение —
flock.Запустить команду, только если она ещё не выполняется:
flock -n /tmp/deploy.lock deploy.sh
Если блокировка занят,
flock завершится с ошибкой, команда не стартует.Для скриптов ещё надёжнее:
exec 9>>/tmp/job.lock
flock -n 9 || exit 1
С этого момента гарантированно: только один экземпляр, блокировка снимается автоматически при
exit.flock — это advisory-блокировка ядра с атомарной установкой, а не договорённость скриптов. Используйте её для cron, деплоя, миграций, бэкапов и CI-шагов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7🔥5
Анализ поведения приложения через фаззинг статус-кодов!
Изучение ответов сервера на нестандартные запросы помогает выявить скрытые директории, ошибки конфигурации или утечки данных.
Используем инструмент
Для начала установим инструмент
Результат: утилита готова к работе, проверь установку командой
Создадим небольшой словарь потенциальных путей и запустим сканирование целевого узла с фильтрацией по кодам ответа:
Результат: в консоли появится таблица с путями, которые вернули указанные статусы.
Исключаем ответы с размером
Результат: в выводе останутся только те запросы, чей контент отличается от стандартной заглушки.
Команда для быстрой проверки доступности целевого
🔥 Помни, что агрессивное сканирование легко детектируется системами защиты (
➡️ DevOps Ready | #практика
Изучение ответов сервера на нестандартные запросы помогает выявить скрытые директории, ошибки конфигурации или утечки данных.
Используем инструмент
ffuf для массовой проверки того, как веб-приложение реагирует на различные манипуляции с путями.Для начала установим инструмент
ffuf, который является золотым стандартом для быстрого фаззинга веб-ресурсов:sudo apt update && sudo apt install ffuf -y
Результат: утилита готова к работе, проверь установку командой
ffuf -VСоздадим небольшой словарь потенциальных путей и запустим сканирование целевого узла с фильтрацией по кодам ответа:
# Фаззинг путей с отображением кодов 200, 301 и 403
ffuf -u http://localhost:8080/FUZZ -w /usr/share/wordlists/dirb/common.txt -mc 200,301,403
Результат: в консоли появится таблица с путями, которые вернули указанные статусы.
Исключаем ответы с размером
4242 байта, которые могут быть кастомной страницей 404:ffuf -u http://localhost:8080/FUZZ -w dict.txt -fs 4242
Результат: в выводе останутся только те запросы, чей контент отличается от стандартной заглушки.
Команда для быстрой проверки доступности целевого
URL перед началом фаззинга:curl -I http://localhost:8080
🔥 Помни, что агрессивное сканирование легко детектируется системами защиты (
WAF/IDS), поэтому всегда настраивай задержки между запросами.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты устал от длинных и перегруженных man-документаций сохраняй этот репозиторий. Tldr-pages даёт короткие и практичные примеры команд для Linux, macOS и Windows: git, docker, ssh, grep, tar и сотен других утилит. Без теории и лишнего текста - только то, что действительно используют в работе.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍8❤7
Низкоуровневый аудит процесса в Linux!
Когда
Аргументы запуска процесса (
Показывает текущие аргументы процесса. Полезно для диагностики, но
Пример вывода:
Память процесса:
Пример:
Детальная карта памяти процесса:
Позволяет понять, где именно расходуется память:
Открытые файлы и сокеты процесса:
Здесь видны логи, сокеты,
Количество потоков внутри процесса:
Рост значения без явной нагрузки может указывать на проблемы с управлением потоками, но не всегда означает утечку.
Реальный исполняемый файл процесса:
Права и
🔥 Короткая практическая выжимка для анализа процессов на уровне procfs/ядра.
➡️ DevOps Ready | #практика
Когда
top и htop уже не дают ответов, вся реальная картина состояния процесса находится в /proc. Аргументы запуска процесса (
argv):cat /proc/PID/cmdline | tr '\0' ' '
Показывает текущие аргументы процесса. Полезно для диагностики, но
argv может быть изменён самим процессом и не всегда отражает исходную команду запуска.Пример вывода:
/usr/bin/python3 worker.py --queue=emails --env=prod
Память процесса:
cat /proc/PID/status | grep -E 'VmRSS|VmSize|VmSwap'
VmRSS — реально занятая RAM
VmSize — виртуальное адресное пространство процесса
VmSwap — объём, вытесненный в swap
Пример:
VmRSS: 412384 kB
VmSwap: 65536 kB
Детальная карта памяти процесса:
cat /proc/PID/smaps
Позволяет понять, где именно расходуется память:
private, shared, file-backed. На больших процессах может быть тяжёлым.Открытые файлы и сокеты процесса:
ls -l /proc/PID/fd
Здесь видны логи, сокеты,
pipes и удалённые файлы, которые всё ещё удерживаются процессом (доступ зависит от прав).Количество потоков внутри процесса:
ls /proc/PID/task | wc -l
Рост значения без явной нагрузки может указывать на проблемы с управлением потоками, но не всегда означает утечку.
Реальный исполняемый файл процесса:
readlink /proc/PID/exe
Права и
capabilities процесса:cat /proc/PID/status | grep Cap
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍10🔥10
Forwarded from Linux Ready | DevOps
День рождения Линуса Торвальдса: создателю Linux и Git исполнилось 56 лет!
Сегодня, 28 декабря, мир IT отмечает день рождения Линуса Бенедикта Торвальдса. Он родился в 1969 году в Хельсинки и начал программировать в 11 лет на Commodore VIC-20.
В 1991 году Линус выпустил ядро Linux, ставшее основой серверов, Android и тысяч embedded-систем. В 2005 году создал Git, который появился как быстрый инструмент для разработки самого Linux и за считанные годы стал стандартом индустрии.
@linux_ready
Сегодня, 28 декабря, мир IT отмечает день рождения Линуса Бенедикта Торвальдса. Он родился в 1969 году в Хельсинки и начал программировать в 11 лет на Commodore VIC-20.
В 1991 году Линус выпустил ядро Linux, ставшее основой серверов, Android и тысяч embedded-систем. В 2005 году создал Git, который появился как быстрый инструмент для разработки самого Linux и за считанные годы стал стандартом индустрии.
@linux_ready
❤23🔥11👍9
Тут мы видим, как работают
HTTP/HTTPS, WebSocket, TCP/UDP, SMTP и FTP, а также в каких сценариях их обычно применяют: от веб-браузинга и чатов до видео-конференций и загрузки файлов.Сохрани, чтобы быстро вспоминать, какой протокол за что отвечает и чем они отличаются по механике работы и
use case.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9❤8
Как мгновенно откатить ошибочную команду в shell!
Запустил команду и сомневаешься, что она делает? Повтори последнюю команду без выполнения, просто выведи её:
Хочешь, чтобы при повторе команда сначала появлялась в терминале для проверки, а не исполнялась сразу?
Теперь при вводе:
🔥 Команда вставится в строку, но не выполнится, пока не нажмёшь Enter. Если увидел, что это не то — просто редактируй или отменяй.
➡️ DevOps Ready | #совет
Запустил команду и сомневаешься, что она делает? Повтори последнюю команду без выполнения, просто выведи её:
!!:p
!! — последняя команда из истории, :p — print only.Хочешь, чтобы при повторе команда сначала появлялась в терминале для проверки, а не исполнялась сразу?
shopt -s histverify
Теперь при вводе:
!!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Это больше, чем просто эмулятор: запускайте Ubuntu, Debian, Kali и другие дистрибутивы, работайте с терминалом, настраивайте сервисы и экспериментируйте с командами. Идеально для практики системного администрирования, DevOps и информационной безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍7🤝7
Девопсеры, с наступающим! 🎄
Желаю каждому провести новый 2026 год намного лучше и выполнить все планы. Моя цель: набрать более 15 тысяч подписчиков.
Желаю каждому провести новый 2026 год намного лучше и выполнить все планы. Моя цель: набрать более 15 тысяч подписчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23🔥12👍7
В этом посте собраны ключевые команды и техники: от мгновенного перезапуска отдельных сервисов до глубокой очистки окружения и просмотра логов. Эти методы помогают тратить меньше времени на ожидание билдов и больше — на написание кода.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍5❤3🤝2
Например, DNS переводит домены в IP-адреса, HTTPS отвечает за безопасное соединение с сайтами и API, а SSH позволяет безопасно подключаться к серверам.
На картинке — сетевые сервисы, их протоколы и стандартные порты, которые постоянно встречаются в backend, DevOps и инфраструктурной работе.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥6
Открываем ISO-образы в Linux без распаковки!
ISO монтируются как обычные каталоги через loop-устройство, что позволяет просматривать структуру диска и копировать файлы без изменения самого образа.
Монтирование в режиме только для чтения:
Проверка монтирования и просмотр содержимого:
Копирование файлов с сохранением доступных в образе атрибутов:
Сохранение прав, симлинков и расширенных атрибутов зависит от наличия поддержки Rock Ridge/Joliet в самом ISO. Ключ
Размонтирование:
Shell-функция для частого использования с автоматической очисткой:
Вызов:
🔥 Образ подключается в
➡️ DevOps Ready | #практика
ISO монтируются как обычные каталоги через loop-устройство, что позволяет просматривать структуру диска и копировать файлы без изменения самого образа.
Монтирование в режиме только для чтения:
sudo mkdir -p /mnt/iso
sudo mount -o loop,ro image.iso /mnt/iso
Проверка монтирования и просмотр содержимого:
findmnt /mnt/iso
ls /mnt/iso
Копирование файлов с сохранением доступных в образе атрибутов:
cp -a /mnt/iso ~/iso-copy/
Сохранение прав, симлинков и расширенных атрибутов зависит от наличия поддержки Rock Ridge/Joliet в самом ISO. Ключ
-a копирует только те метаданные, которые реально присутствуют и доступны.Размонтирование:
cd ~
sudo umount /mnt/iso
Shell-функция для частого использования с автоматической очисткой:
mountiso() {
local dir
dir=$(sudo mktemp -d /tmp/iso-XXXXXX)
sudo mount -o loop,ro "$1" "$dir" && cd "$dir"
echo "Для размонтирования выполните: sudo umount $dir && sudo rmdir $dir"
}Вызов:
mountiso ./ubuntu-24.04.iso
ro и остаётся неизменным. В контейнерах нужны CAP_SYS_ADMIN и доступ к /dev/loop* или запуск с --privileged.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий включает лучшие практики и команды для Linux/macOS терминала. Здесь собраны приемы, комбинации CLI-утилит, практики, которые помогают работать быстрее, искать ошибки, обрабатывать данные и автоматизировать рутинные задачи. Отличный ресурс, чтобы повысить эффективность работы.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥7
Правильная архитектура
Git-репозиториев в DevOps — это не про красоту папок, а про безопасность деплоя, скорость отката и удобство командной работы. В этом посте:
• Монорепозиторий или Полирепозиторий: что выбрать под ваш масштаб?
• Структура IaC: почему модули должны жить отдельно от окружений;
• Слоеная архитектура: разделяем Core, Platform и App уровни;
• GitOps подход: как автоматизировать связь между кодом и манифестами.
Хорошая структура позволяет масштабировать систему без боли и лишних митингов. Разбираемся, как заложить фундамент правильно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥4