Как убрать зависший процесс, дав ему шанс завершиться нормально?
Иногда процесс нужно убрать, но
Сначала отправь корректный сигнал завершения:
Подожди пару секунд (значение условное, часто этого достаточно):
Если не вышел, завершаем принудительно:
🔥
🚪 Linux Ready | #совет
Иногда процесс нужно убрать, но
SIGKILL сразу не всегда правильно, можно потерять буферы, получить битые временные файлы.Сначала отправь корректный сигнал завершения:
kill -TERM 1234
SIGTERM даёт процессу шанс закрыть файлы, сохранить состояние и выйти.Подожди пару секунд (значение условное, часто этого достаточно):
sleep 2
Если не вышел, завершаем принудительно:
kill -KILL 1234 2>/dev/null || true
SIGKILL нельзя перехватить: ядро завершит процесс (за исключением редких случаев D-state из-за I/O).SIGTERM - позволяет процессу корректно освободить ресурсы и закрыть файловые дескрипторы; SIGKILL используй только как fallback, когда процесс игнорирует сигналы и завис.Please open Telegram to view this post
VIEW IN TELEGRAM
🤝11👍10🔥6❤5
Например, Reflected XSS выполняется сразу после перехода по вредоносной ссылке, а Stored XSS сохраняется в базе и срабатывает у всех пользователей.
На картинке — 3 основных типа XSS, которые важно различать при разработке и ревью кода.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝7👍6❤3
Разрежённые файлы (sparse files) и экономия диска!
В Linux файл может иметь логический размер, превышающий фактически занятое место на диске. Незаписанные области представлены как дыры (holes) и физически места не занимают.
Создание файла большого размера без записи данных:
Файл имеет логический размер 10G, но почти не занимает место на диске.
Проверка:
Создание sparse-файла через
Смещение файлового офсета устанавливается на 10G без записи данных — создаётся файл с дырой.
Частичная запись данных:
Физически будет занят только небольшой участок около 1G, остальное останется дырами.
Просмотр расположения данных:
Показывает, какие диапазоны файла реально занимают блоки на диске (для классических FS вроде ext4/xfs).
Освобождение места внутри существующего файла, автоматическое преобразование участков, заполненных нулями, в дыры:
Точечное выбивание физических блоков с сохранением логического размера:
Корректное копирование sparse-файлов:
Для архивов:
Важно: поддержка sparse-файлов и hole punching зависит от файловой системы и её конфигурации (ext4, xfs — поддерживают).
🔥 Sparse-файлы — базовый механизм экономии диска для образов, дампов и крупных артефактов.
🚪 Linux Ready | #практика
В Linux файл может иметь логический размер, превышающий фактически занятое место на диске. Незаписанные области представлены как дыры (holes) и физически места не занимают.
Создание файла большого размера без записи данных:
truncate -s 10G bigfile.img
Файл имеет логический размер 10G, но почти не занимает место на диске.
Проверка:
ls -lh bigfile.img
du -h bigfile.img
ls показывает логический размер файла, du — реально занятое дисковое пространство.Создание sparse-файла через
dd:dd if=/dev/zero of=bigfile.img bs=1 count=0 seek=10G
Смещение файлового офсета устанавливается на 10G без записи данных — создаётся файл с дырой.
Частичная запись данных:
printf 'DATA' | dd of=bigfile.img bs=1 seek=1G conv=notrunc
Физически будет занят только небольшой участок около 1G, остальное останется дырами.
Просмотр расположения данных:
filefrag -v bigfile.img
Показывает, какие диапазоны файла реально занимают блоки на диске (для классических FS вроде ext4/xfs).
Освобождение места внутри существующего файла, автоматическое преобразование участков, заполненных нулями, в дыры:
fallocate -d bigfile.img
Точечное выбивание физических блоков с сохранением логического размера:
fallocate --punch-hole --offset 1G --length 500M --keep-size bigfile.img
Корректное копирование sparse-файлов:
cp --sparse=always src.img dst.img
Для архивов:
tar --sparse -cf backup.tar bigfile.img
Важно: поддержка sparse-файлов и hole punching зависит от файловой системы и её конфигурации (ext4, xfs — поддерживают).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤8🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
Отличный репозиторий с реальными вопросами, которые проверяют знания Linux и DevOps. Здесь есть вопросы по командам, процессам, файловым системам, сетям, bash и другим темам, которые часто встречаются в задачах и на собеседованиях.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤11🤝9🔥1
DDoS — это атака, при которой сервер заваливают огромным количеством запросов, из-за чего он перестаёт отвечать реальным пользователям.
На картинке — наглядная схема: как работает DDoS; роль ботов (zombie); чем отличается нормальный TCP handshake от атаки.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥10🤝7
Почему grep выводит данные с задержкой в пайпах?
Бывало
Это не баг. Большинство CLI-утилит буферизуют
Классический сценарий мониторинга логов без задержек:
Альтернатива специально для
Работает и с другими командами:
🔥 Если команда в пайпе не отвечает, почти всегда виновата буферизация.
🚪 Linux Ready | #совет
Бывало
tail -f app.log | grep ERROR - лог пишется, а grep молчит и выводит всё сразу через секунды?Это не баг. Большинство CLI-утилит буферизуют
stdout, когда работают не в TTY, а в пайпе. Отключаем буферизацию:stdbuf -oL grep "ERROR" app.log
-oL — построчный вывод (line-buffered).Классический сценарий мониторинга логов без задержек:
tail -f app.log | stdbuf -oL grep "ERROR"
Альтернатива специально для
grep:tail -f app.log | grep --line-buffered "ERROR"
Работает и с другими командами:
journalctl -f | stdbuf -oL grep nginx
stdbuf -oL (или grep --line-buffered) возвращает вывод без переписывания пайпа.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥10❤8
В этом посте — набор утилит для потоковой обработки и анализа больших файлов без загрузки их в память. Эти инструменты используются при работе с логами, CSV/TSV-данными и текстовыми дампами. С их помощью можно извлекать колонки, фильтровать строки, сортировать данные и отслеживать прогресс обработки.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍12❤8🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собран большой русскоязычный список полезного софта: консольные утилиты, системные инструменты, графические приложения, окружения рабочего стола, а также ссылки на форумы и полезные ресурсы по Linux.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥12👍9🤝3👎1
В этой статье:
• Автор на примере Ubuntu разбирает, как выводить аудио одновременно на несколько устройств;
• Пошагово объясняется, какие модули и утилиты нужны для мультивыхода;
• Приводятся рабочие команды для создания виртуального аудиоустройства и его настройки.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍16🤝9
Обновляем файлы через подмену, а не через редактирование!
Подготавливаем новую версию файла отдельно, не трогая рабочий:
Редактируем её как угодно, ошибки здесь никому не мешают:
Заменяем файл одной атомарной операцией:
В Linux имя файла - это запись каталога, указывающая на inode.
🔥 Атомарность гарантирована только внутри одного файлового раздела.
🚪 Linux Ready | #совет
Подготавливаем новую версию файла отдельно, не трогая рабочий:
cp --preserve=mode,ownership config.conf config.conf.new
Редактируем её как угодно, ошибки здесь никому не мешают:
vim config.conf.new
Заменяем файл одной атомарной операцией:
mv config.conf.new config.conf
В Linux имя файла - это запись каталога, указывающая на inode.
mv (rename) атомарно меняет эту запись, процесс либо видит старую версию файла, либо уже новую, без промежуточного состояния.mv между разными FS - это копирование и удаление.Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤9🤝9
Сhrony - NTP-клиент, который корректно держит время на VPS, виртуальных машинах и серверах с нестабильной сетью. Он является стандартом де-факто в современных дистрибутивах.
В этом посте:
• Проверяем текущее состояние времени и синхронизации в системе;
• Устанавливаем и включаем chrony;
• Проверяем источники времени и фактическую точность;
• Убеждаемся, что время стабильно.
Точная синхронизация времени устраняет целый класс трудно отлавливаемых ошибок и делает поведение системы предсказуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥11❤10🤝4😁1