В этом посте собраны утилиты для эффективной обработки текстовых файлов в командной строке. Рассмотрены сортировка строк, подсчёт повторений, устранение дубликатов, а также объединение данных построчно и по ключевым полям. Полезно для анализа логов, работы со списками и построения конвейеров обработки данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥9🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт со статьями по информационной безопасности, где подробно разбираются киберугрозы, методы защиты, требования регуляторов и практические аспекты построения защищённых систем. Материалы охватывают широкий круг тем. Подойдёт всем, кто хочет глубже понять, как защищаются данные и информационные системы на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝8👍7
Как уменьшать лог-файлы без перезапуска сервиса!
В Linux файловый дескриптор привязан к
Поэтому лог корректно очищать без удаления файла:
Эта конструкция обнуляет содержимое, но сохраняет тот же
Если нужно урезать файл до конкретного размера, используется
Команда обрежет файл до 1MB. Она оставляет начало файла и удаляет хвост, то есть будут потеряны последние (самые новые) записи.
Если требуется сохранить последние записи, важно не менять
Корректный вариант, перезаписать содержимое в тот же файл:
🔥 Так сохраняются последние 1000 строк,
➡️ DevOps Ready | #совет
В Linux файловый дескриптор привязан к
inode, а не к имени файла. Если процесс уже открыл лог и пишет в него, удаление файла не освободит место сразу.Поэтому лог корректно очищать без удаления файла:
> application.log
Эта конструкция обнуляет содержимое, но сохраняет тот же
inode и открытый дескриптор.Если нужно урезать файл до конкретного размера, используется
truncate:truncate -s 1M application.log
Команда обрежет файл до 1MB. Она оставляет начало файла и удаляет хвост, то есть будут потеряны последние (самые новые) записи.
Если требуется сохранить последние записи, важно не менять
inode файла.Корректный вариант, перезаписать содержимое в тот же файл:
tail -n 1000 application.log > tmp.log && cat tmp.log > application.log && rm tmp.log
inode остаётся тем же, и сервис продолжит писать в текущий файл.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥10🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны практические заметки и техники по анализу уязвимостей, эксплуатации ошибок и защите систем: веб-приложения, мобильные приложения, контейнеры, CI/CD, облачные сервисы и Linux-среды. Также рассматриваются распространённые сценарии атак, такие как конфигурационные ошибки и проблемы безопасности инфраструктуры.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍9🔥7
Использование tmpfs для временных данных и ускорения I/O!
tmpfs — файловая система в оперативной памяти. Применяется для временных файлов, кешей, unix-сокетов и данных, которые не должны переживать перезагрузку.
Типичный сценарий — ускорить операции и убрать лишнюю нагрузку с диска, особенно на серверах с активным I/O.
Создание точки монтирования выполняется один раз:
Монтирование tmpfs в память:
Важно: параметр
Проверить, что файловая система действительно смонтирована:
или более точно:
Любые данные, созданные внутри, существуют только пока tmpfs смонтирован. После размонтирования или перезагрузки они будут утеряны — это ожидаемое поведение и ключевая особенность tmpfs.
Для постоянного использования tmpfs добавляется в
Ограничение по размеру защищает систему от неконтролируемого потребления памяти, а
После добавления запись можно активировать без перезагрузки:
(при условии, что точка монтирования уже существует)
Частый вариант — использование tmpfs вместе с systemd-сервисами. systemd умеет автоматически создавать временные директории в памяти и очищать их при остановке сервиса:
В этом случае каталог создаётся в
Контроль использования памяти:
Важно учитывать, что tmpfs использует оперативную память и может задействовать swap. При неправильно выбранных лимитах это способно повлиять на всю систему.
🔥 tmpfs — простой и надёжный инструмент для временных данных, когда важны скорость, чистота окружения и предсказуемое поведение при рестартах.
➡️ DevOps Ready | #практика
tmpfs — файловая система в оперативной памяти. Применяется для временных файлов, кешей, unix-сокетов и данных, которые не должны переживать перезагрузку.
Типичный сценарий — ускорить операции и убрать лишнюю нагрузку с диска, особенно на серверах с активным I/O.
Создание точки монтирования выполняется один раз:
mkdir -p /mnt/tmpfs
Монтирование tmpfs в память:
mount -t tmpfs -o size=1G,noatime tmpfs /mnt/tmpfs
Важно: параметр
size задаёт верхний лимит, а не резервирует память заранее. Каталог начинает использовать RAM по мере записи (и swap при необходимости). Файлы размещаются в памяти, без прямых операций записи на диск.Проверить, что файловая система действительно смонтирована:
df -hT /mnt/tmpfs
или более точно:
findmnt /mnt/tmpfs
Любые данные, созданные внутри, существуют только пока tmpfs смонтирован. После размонтирования или перезагрузки они будут утеряны — это ожидаемое поведение и ключевая особенность tmpfs.
Для постоянного использования tmpfs добавляется в
/etc/fstab:tmpfs /mnt/tmpfs tmpfs size=1G,noatime,nodev,nosuid,noexec 0 0
Ограничение по размеру защищает систему от неконтролируемого потребления памяти, а
nodev, nosuid и noexec повышают безопасность (если выполнение файлов не требуется).После добавления запись можно активировать без перезагрузки:
mount /mnt/tmpfs
(при условии, что точка монтирования уже существует)
Частый вариант — использование tmpfs вместе с systemd-сервисами. systemd умеет автоматически создавать временные директории в памяти и очищать их при остановке сервиса:
[Service]
RuntimeDirectory=myapp
В этом случае каталог создаётся в
/run/myapp (который находится в tmpfs) и живёт столько, сколько работает сервис. Поведение можно дополнительно настраивать через RuntimeDirectoryPreserve=.Контроль использования памяти:
df -h | grep tmpfs
Важно учитывать, что tmpfs использует оперативную память и может задействовать swap. При неправильно выбранных лимитах это способно повлиять на всю систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤8🔥6
ACL — это расширение обычных прав доступа в Linux. Если стандартные права (owner / group / other) позволяют управлять доступом только на базовом уровне, то ACL дает возможность назначать права конкретным пользователям и группам.
На картинке — базовые принципы работы ACL.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8🔥8
Проверяем, каким маршрутом ядро отправит пакет с помощью ip route get!
Когда на сервере несколько интерфейсов, VPN, policy routing или просто странное сетевое поведение, читать таблицы маршрутов бывает недостаточно. В таких случаях проще напрямую спросить у ядра, какой маршрут оно выберет для пакета до конкретного адреса.
Для этого есть
Проверить маршрут до конкретного IP:
В выводе обычно видно
Пример:
Здесь видно, что пакет будет отправлен через
Понять, какой маршрут выберется для конкретного исходного IP:
Это полезно на серверах с несколькими IP-адресами, когда нужно проверить выбор маршрута для конкретного исходного адреса.
Проверить поиск маршрута с указанием интерфейса:
Опция
Можно также выполнить lookup так, как если бы пакет пришёл на определённый интерфейс:
Опция
Если нужно посмотреть таблицы маршрутизации:
Если используется policy-маршрутизация, полезно также проверить правила:
А чтобы увидеть маршруты во всех таблицах:
🔥 Особенно полезно на серверах с несколькими интерфейсами, VPN-узлах и в сложных сетевых конфигурациях.
➡️ DevOps Ready | #практика
Когда на сервере несколько интерфейсов, VPN, policy routing или просто странное сетевое поведение, читать таблицы маршрутов бывает недостаточно. В таких случаях проще напрямую спросить у ядра, какой маршрут оно выберет для пакета до конкретного адреса.
Для этого есть
ip route get. Команда показывает, какой маршрут будет выбран при поиске маршрута (route lookup), а также исходный адрес и интерфейс, через который пакет будет отправлен.Проверить маршрут до конкретного IP:
ip route get 8.8.8.8
В выводе обычно видно
via, dev и src — через какой следующий узел пойдёт трафик, через какой интерфейс и с какого исходного адреса он будет отправлен.Пример:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10
Здесь видно, что пакет будет отправлен через
eth0, следующий узел — 192.168.1.1, а исходным адресом будет 192.168.1.10.Понять, какой маршрут выберется для конкретного исходного IP:
ip route get 8.8.8.8 from 192.168.1.10
Это полезно на серверах с несколькими IP-адресами, когда нужно проверить выбор маршрута для конкретного исходного адреса.
Проверить поиск маршрута с указанием интерфейса:
ip route get 8.8.8.8 oif eth0
Опция
oif позволяет выполнить поиск маршрута с учётом указанного выходного интерфейса.Можно также выполнить lookup так, как если бы пакет пришёл на определённый интерфейс:
ip route get 1.1.1.1 iif eth1
Опция
iif указывает входной интерфейс и позволяет посмотреть, какой маршрут выберет ядро для форвардинга такого пакета. Это полезно при разборе асимметричной маршрутизации (asymmetric routing), policy-маршрутизации (policy routing) и правил, завязанных на интерфейсы.Если нужно посмотреть таблицы маршрутизации:
ip route
Если используется policy-маршрутизация, полезно также проверить правила:
ip rule
А чтобы увидеть маршруты во всех таблицах:
ip route show table all
ip route показывает записи в таблицах маршрутизации, а ip route get — какой маршрут ядро реально выберет для конкретного пакета при route lookup.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Репозиторий представляет собой сборник материалов и инструментов для изучения хакинга. Здесь собраны гайды для начинающих, ресурсы, практические лаборатории, CTF-платформы, инструменты для анализа уязвимостей. Также включены подборки блогов, форумов, обучающих видео и сообществ, связанных с безопасностью.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥8❤7🤝1
Как ускорить работу с директориями?
В повседневной работе часто приходится создавать директории и переходить в них. Обычно это делается двумя командами подряд.
Функция
Директория создаётся и вы сразу оказываетесь внутри неё. Это удобно при создании новых проектов, тестовых каталогов или рабочих папок.
Создание временной рабочей директории. Это удобно, когда нужно быстро распаковать архив, протестировать скрипт или поэкспериментировать с файлами:
После работы её можно удалить вручную, либо она может исчезнуть позже при очистке временных каталогов системой.
🔥 Чтобы пользоваться ими постоянно, достаточно добавить функции в файл конфигурации вашей оболочки (
➡️ DevOps Ready | #совет
В повседневной работе часто приходится создавать директории и переходить в них. Обычно это делается двумя командами подряд.
Функция
mkcd объединяет эти действия в одну команду:mkcd() { mkdir -p -- "$1" && cd -- "$1"; }
mkcd projectДиректория создаётся и вы сразу оказываетесь внутри неё. Это удобно при создании новых проектов, тестовых каталогов или рабочих папок.
Создание временной рабочей директории. Это удобно, когда нужно быстро распаковать архив, протестировать скрипт или поэкспериментировать с файлами:
tmpcd() { cd -- "$(mktemp -d)"; }
tmpcdПосле работы её можно удалить вручную, либо она может исчезнуть позже при очистке временных каталогов системой.
~/.bashrc, ~/.zshrc).Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝7👍6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Это ресурс с подборкой шпаргалок по Linux, где собраны самые важные команды и инструменты для работы в терминале. Материал особенно полезен тем, кто работает с серверами через SSH или постоянно взаимодействует с системой из командной строки, где важно быстро вспомнить нужную команду или параметр. Всё подано в формате компактных таблиц и коротких подсказок.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝8👍7❤1
В этом посте — набор утилит для потоковой обработки и анализа больших файлов без загрузки их в память. Эти инструменты используются при работе с логами, CSV/TSV-данными и текстовыми дампами. С их помощью можно извлекать колонки, фильтровать строки, сортировать данные и отслеживать прогресс обработки.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8🤝8
Например,
код 200 означает, что всё прошло успешно, а 404 сообщает, что страница не найдена.Очень полезно держать под рукой, когда работаешь с API или отлаживаешь backend.
На картинке показаны самые часто используемые статусы от 100 до 599.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍10🔥9
Уверены, что ваши системные утилиты не подменены хакерами?
Руткиты часто заменяют стандартные бинарники (вроде
Для систем на базе
Команда сравнит текущие файлы с метаданными из базы данных пакетов и выведет список измененных файлов.
Если нужно проверить конкретный важный файл вручную и сравнить его с эталоном:
Генерирует уникальный отпечаток файла для сверки с чистой системой.
🔥 Мини-совет: используйте утилиту
➡️ DevOps Ready | #совет
Руткиты часто заменяют стандартные бинарники (вроде
ls, ps или netstat), чтобы скрывать вредоносные процессы и соединения. Проверка контрольных сумм позволяет мгновенно обнаружить изменения в файлах, которые должны оставаться неизменными с момента установки.Для систем на базе
RPM (CentOS, Fedora, RHEL) используйте встроенную проверку:rpm -Va
Команда сравнит текущие файлы с метаданными из базы данных пакетов и выведет список измененных файлов.
Если нужно проверить конкретный важный файл вручную и сравнить его с эталоном:
sha256sum /bin/ls
Генерирует уникальный отпечаток файла для сверки с чистой системой.
debsums в Debian-системах для автоматического поиска бинарников, не соответствующих своим оригинальным контрольным суммам.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4
This media is not supported in your browser
VIEW IN TELEGRAM
В репозитории собраны материалы по основам Linux для разработчиков: работа с shell, управление пакетами, права доступа, процессы, SSH и сетевые утилиты. Всё оформлено в виде наглядных схем, таблиц и кратких объяснений. Материал разбит на небольшие блоки: шпаргалки, краткое пояснения ключевых терминов и ссылки на источники для углубленного изучения.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥9🤝6👍3