Рубрика «bash»

Привет! К написанию статьи меня подтолкнуло знакомство с механизмом socket activation в Linux, на который я случайно наткнулся и не смог пройти мимо. Технология старая, но заслуживает большого внимания, а моя статья раскрывает одно из множества потенциальных практических применений.

Читать полностью »

Мы хотели сделать простую вещь: после деплоя отправлять уведомление в чат MAX из GitLab CI.

На бумаге задача выглядела почти тривиально:

  • есть MAX_BOT_TOKEN

  • есть MAX_NOTIFY_CHAT_ID

  • есть curl

  • есть POST https://platform-api.max.ru/messages?chat_id=...

Но на практике уведомления не приходили несколько дней. Мы меняли образы, переписывали скрипты, упрощали payload, добавляли диагностику. Результат был один: сообщение не доходило.

Настоящая причина оказалась совсем не там, где мы её искали.


Связанные материалы

У любой удобной штуки есть момент, когда она начинает раздражать.

С Codex у меня это случилось, когда аккаунтов стало больше одного. Один рабочий, один личный, один запасной. И дальше начинается обычная бытовая возня: то не тот auth.json, то уже кончился лимит, то вообще непонятно, под каким профилем сейчас запущен CLI.

Можно, конечно, хранить несколько файлов и копировать их руками:

cp auth-work.json ~/.codex/auth.json

Но это ровно тот способ, который сначала кажется нормальным, а потом внезапно бесит каждый день.

Я в итоге написал маленький bash-скрипт codex-auth, который делает три простые вещи:

Предыстория

У вас конечно же нет VPN сервера ocserv, но возможно у какого-то абсолютно незнакомого человека он есть — с десятками, а может сотней пользователей. И этот незнакомый человек наверняка знает эту боль: каждый раз при добавлении нового клиента нужно вспоминать команды, лезть в документацию, не забыть обновить CRL, правильно экспортировать .p12. Когда этот гипотетический человек в очередной раз забыл флаг --legacy в openssl и получил нечитаемый файл сертификата — он вероятно захотел бы какое-нибудь автоматизированное решение.

Читать полностью »

в 14:16, , рубрики: bash, chroot, docker, shell

Небольшое вступление

Читать полностью »

Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.

Я не идиот. Точнее, может и идиот, но не поэтому. Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память. Там дефис или нет? xzf или xfz? Или zxf? Вроде порядок не важен? Или важен?..

Короче. Месяц назад я написал скрипт, который это решил. А потом скрипт решил больше, чем я хотел.

Зачем вообще

Читать полностью »

Btrfs (B-tree File System)

Btrfs (B-tree File System)

Привет!

Не все инсталляторы linux могут установить систему на btrfs subvolume. Ни один инсталлятор не может установить систему с применением nocow и compress только для определенных subvolume.

Читать полностью »

slowfetch: Замедляем fastfetch ради эстетики. История одного овер-инжиниринга на Bash - 1

В мире Linux существует негласное соревнование: чей neofetch (земля ему пухом) или fastfetchЧитать полностью »

В какой-то момент я понял, что живу в режиме вечного поиска. Договор аренды — где-то в почте, чеки на технику — в телеге, настройки ноутбука — в заметках, список задач — в пяти разных приложениях, а важные решения — в голове. Я попробовал собрать это как проект: git, структура папок, метаданные, шифрование, хуки, генерация коротких сводок и нормальные бэкапы. Рассказываю, как я это сделал, где облажался и какие куски кода реально помогают поддерживать порядок.

Почему git вообще подходит для личного архива, а не только для кода

Читать полностью »

Каждый, кто проводит в терминале больше пяти минут, сталкивается с одним и тем же: одни и те же длинные команды приходится набирать снова и снова, а рутинные действия отнимают время и внимание. Сначала терпишь, потом — начинаешь оптимизировать.

Простейший алиас в .bashrc или .zshrc кажется небольшим открытием. Первый рабочий скрипт, сохранённый в ~/.local/bin, ощущается как прорыв. Это не просто про лень — это про эффективность, про оптимизацию работы.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js