Содержание статьи
«Мастерская хакера»
Это уже пятая моя подборка утилит, облегчающих жизнь в мелочах. Благодарные читатели продолжают открывать передо мной свои кладовки, а я выношу оттуда и показываю на страницах «Хакера» все самое вкусное.
Не забудь заглянуть в прошлые четыре части. В первой мы рассматривали в основном сетевые утилиты, во второй — дашборды и прочие украшательства, в третьей я сконцентрировался на жизни в Windows с WSL, а четвертая была для администраторов Linux.
nezha
Nezha — легковесный и красивый аналог Zabbix, выводит в веб‑панели сводку по серверам, их системным ресурсам и другую информацию.
Установка относительно непростая: тебе понадобится живой Docker, аккаунт на GitHub и доменное имя.
Для начала создай приложение на GitHub: перейди на GitHub Developer и нажми New OAuth App. При заполнении формы потребуется указать адрес домашней страницы приложения (для этого нужен будет домен), а в поле Authorization callback URL вписать <
. Затем создай на странице приложения Client ID и Client Secret и запиши — больше их посмотреть не получится.
Теперь выполни в терминале следующую команду:
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install_en.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
После ее выполнения откроется текстовое меню. Выбираем первый пункт.
Установочный скрипт задаст несколько вопросов, в том числе о портах. По умолчанию HTTP-сервер с интерфейсом поднимется на 8008-м порте, а сервер для сбора информации от агентов — на 5555-м.
Готово, панель поднялась. Можно ее открыть, войти через GitHub и создать новый сервер.
После создания сервера ты увидишь в панели его секрет. Он‑то нам и нужен для установки агента.
Теперь можно установить сам агент. Он ставится тем же скриптом, что и панель, но надо выбрать пункт 8. При установке у тебя спросят адрес панели и секрет, созданный на прошлом шаге. После ввода этих данных клиент сразу заработает, больше ничего настраивать не придется.
Теперь на главной странице появится карточка с информацией сервера, а в панели можно открыть веб‑терминал. Он полноценный: поддерживает цвета, обновляется в реальном времени и реагирует на специальные сочетания клавиш.
В настройках панели можно поменять и тему. На скриншоте ниже — тема Neko Mdui.
Nezha мне очень понравилась. Рекомендую как минимум потыкать демо.
AutoRegex
Регулярные выражения — мощнейший способ преобразования текстовых данных. Однако без опыта составление регулярки может отнять больше времени, чем она сэкономит. Встречай AutoRegex — ИИ‑генератор регулярных выражений из обычных человекочитаемых описаний на английском.
Внутри у этого сервиса — OpenAI Codex, публичная нейронка, которая пишет код по словесному описанию.
С простыми запросами AutoRegex справляется очень неплохо и позволяет здорово сэкономить время.
Единственное, что портит жизнь, — это маленькие лимиты на бесплатное использование. Впрочем, даже их должно хватить: бесплатно предлагается штук десять запросов без аккаунта и еще десять в месяц, если зарегистрируешься. Для трех скриптов в месяц этого с головой хватит, но при необходимости можно заплатить или просто зарегать еще одну учетку и продолжить пользоваться.
hunt
Hunt — это утилита для локального поиска файлов, альтернатива стандартному locate. Судя по моему опыту, работает Hunt быстрее, чем find, fd и locate.
Написана программа на Rust, а следовательно, ставится через Cargo:
cargo install hunt
Здесь есть несколько фильтров и простых настроек, которых тем не менее достаточно для повседневного использования. Вот некоторые из них:
-
-e
— искать только объекты с точно совпадающими именами (по запросуssh
не будет найденsshd_config
); -
-i /
— исключить из поиска определенные папки;path1,/ path2 -
-h
— включить поиск внутри скрытых папок; -
-s
— не выводить пояснения, только список найденных файлов. Полезно для скриптов; -
-c
— точное совпадение регистра.
Больше подробностей — в репозитории программы.
plow
Plow предназначен для нагрузочного тестирования HTTP-серверов. Он основан на Go-библиотеке fasthttp, которая до десяти раз быстрее стандартной реализации, что делает его каким‑то аномально быстрым, по меньшей мере субъективно.
Plow умеет отдавать статистику в реальном времени не только в окне терминала, но и в браузере (по стандарту встроенный сервер доступен на 18888-м порте).
Запуск возможен из Docker или установкой из исходников:
go install github.com/six-ddc/plow@latest
plow <args>
Альтернатива:
docker run --rm --net=host ghcr.io/six-ddc/plow <args>
Аргументы в целом ничего необычного собой не представляют: тут у нас стандартная для таких программ настройка количества потоков (-c
), желаемого количества запросов (-n
), времени теста (-d
или -d
, например) и HTTP-метода (--method="GET"
). Про другие параметры можно подробно прочитать в справке программы (--help
). Цель передается без специальных параметров.
dooit
Для ведения списка дел каждый использует что ему удобнее (я, к примеру, завел приватный канал в Telegram, в котором есть только я, и шлю все дела туда). Если ты проживаешь в терминале, графические приложения тебе чужды и сообщать компаниям о планируемых объемах закупки кофе ты не хочешь, можно использовать локальный менеджер задач вроде Dooit. Он хранит все только у тебя на жестком диске, работает только из терминала и до боли напоминает Vim, с тем лишь отличием, что последний не закрывается по Ctrl-C.
Для установки нужен Git и Python версии не меньше 3.10, что может быть проблемой при использовании в некоторых окружениях. У меня в WSL последняя версия Python все еще 3.8, так что для этой программы пришлось расчехлить виртуалку с более свежей системой.
Если у тебя всё есть, то ставится Dooit всего одной командой:
python3 -m pip install git+https://github.com/kraanzu/dooit.git
Запускается по команде dooit
в терминале.
ContainerSSH
Занятная находка — ContainerSSH, позволяющий незаметно загонять SSH-клиентов в изолированные контейнеры, причем эти контейнеры создаются прямо на лету, в момент подключения.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»