en
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Open in Telegram

Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru

Show more

📈 Analytical overview of Telegram channel Bash Days | Linux | DevOps

Channel Bash Days | Linux | DevOps (@bashdays) in the Russian language segment is an active participant. Currently, the community unites 23 772 subscribers, ranking 5 674 in the Technologies & Applications category and 28 079 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 23 772 subscribers.

According to the latest data from 24 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -207 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 25.62%. Within the first 24 hours after publication, content typically collects 14.38% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 6 090 views. Within the first day, a publication typically gains 3 419 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 21.
  • Thematic interests: Content is focused on key topics such as bashdays, linux, bash, docker, скрипт.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Thanks to the high frequency of updates (latest data received on 25 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

23 772
Subscribers
-424 hours
-257 days
-20730 days
Posts Archive
Бас мазафака фактор! Ща жопы сгорят... Где бы я ни работал, я стараюсь завязать какой-то кусок именно на себя. В идеале полностью подмять и пустить корни во все процессы связанные с той деятельностью, которой я занимаюсь. Если на пальцах, к примеру в компании изначально доминирует terraform и golden image через packer. Я прихожу, вижу этот пиздец. Почему пиздец? Да потому, что это пиздец. Но совладать с процессами на начальном этапе я не могу, потому, что я новенький и не мне диктовать условия. К моим предложениям перейти на ansible и сделать динамические inventory для теры, относятся скептически. Хули? Смириться? Нет уж. Я запиливаю в свое свободное время всю эту связку, делаю пайплайны, кнопку, тесты, короче делаю универсальное решение, которое работает. А не то, что существует у них сейчас. Презентую его CTO в личной беседе. В 99.9999% CTO дает мне зеленый свет на внедрение. А старье с golden image выбрасываем на парашу. Продавил. Молодец. Но остается хуита, когда коллеги из отдела просто в недоумении, типа хуй с горы пришел, чото новое интегрировал, CTO поддержал, да как так-то? Мы тут сидели баблишко, получали, а теперь надо чему-то новому учиться. Да блядь, ребята! Придется играть по моим правилам, либо идите на хуй! Дальше ситуация развивается стремительно, коллеги разбираться в этом не хотят и я все больше и больше подминаю инфраструктуру под себя, становлюсь единственным человеком, который во всем этом шарит и умеет управлять. Да, я предлагаю показать как все это работает. У меня есть написанная документация, она доступна для всех желающих. Но желающих обычно нет. Иииии. Возникает тот самый бас фактор. Грубо говоря, если я хуй забью, то инфраструктуру поддерживать никто не сможет какое-то время, а возможно совсем не сможет. Я не прав? Хуй там, я прав. Я всегда иду на встречу и делюсь знаниями, при условии, что люди хотят эти знания получить. Но обычно никто не хочет покидать зону комфорта. Соответственно имеем, то что имеем. Сидеть в говне я не люблю, по этому, всегда, ВСЕГДА выпиливаю гавно и ввожу новые процессы. Хоть это новая робота, хоть старая. Да я уверен, что продавил бы даже яндекс с гуглом, хотя у них надеюсь и без меня все заебись. Завязав все на себя, легко можно манипулировать своим повышением до начальника отдела, поднятием ЗП и прочее. Главное подходить к этому с умом, а не жопой. Сейчас со мной работает человек и он действительно вникает в то, что я внедрил. Я спокойно сходил в отпуск на месяц и нихуя не уебалось. Он умеет управлять моим заводом. Я отдал ему поле под цех, он построил себе небольшой заводик и успешно им владеет. Я в него не лезу, он создал свой бас фактор и завязал его на себя. Молодец. А не лезу я, потому, что мне неинтересно. А то что мне неинтересно идет нахуй. Да я могу сходить на заводик коллеги, чото там посмотреть, потыкать, но как все это устроено я знать не хочу. Даже когда он уйдет в отпуск и заводик наебнется медным тазом, я за час разберусь и починю все что нужно, потому, что коллега ведет документацию и частенько рассказывает на синках, что и как у него происходит. Короче хуй пойми, бизнес не любит бас фактора, а мы любим бас фактор. Любим по причине — этим можно манипулировать и выбивать себе хорошие должности и ЗП. А как ты считаешь? tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate

🐳 Docker: начните с основ и станьте экспертом контейнеров Введение в Docker — открытый урок 2 декабря в 19:00 мск! Контейнер
🐳 Docker: начните с основ и станьте экспертом контейнеров Введение в Docker — открытый урок 2 декабря в 19:00 мск! Контейнеры — это не будущее, это настоящее. Узнайте, как Docker помогает создавать, разворачивать и управлять приложениями быстрее и проще. 👉 На уроке разберем: - Что такое контейнеры и зачем они нужны. - Основы работы с Docker: файлы, тома, сети. - Как собрать и запустить приложение в контейнере с нуля. Вы научитесь работать с Docker, запустите свой первый контейнер и получите знания, которые пригодятся на практике. ⭐️ Спикер Николай Лавлинский — PhD Economic Sciences, опытный разработчик, автор курсов по администрированию и оптимизации веб-приложений, ведущий каналов «Ускорение сайтов» и «Поддержка сайтов». 🎁 Участники получат скидку на обучение в рамках курса «Administrator Linux. Professional». 👉 Для участия зарегистрируйтесь: https://vk.cc/cFqcrt Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

🤩 Пятница — это продакшн, который уже не твоя проблема. Частенько для установки какого-то софта в линукс, предлагают использовать какой-то snap.
snap install chezmoi
Когда snap появился я как-то скептически к нему отнесся. Мол, чо за хуйня, есть же apt и еже подобные коробочные варианты. Больше наверное меня беспокоило что засрётся система какой-то неведомой шляпой. Время шло и snap появился в коробке. Всё больше вкусных репок стало инсталиться именно через эту штуковину. Пришлось лезть в нору и знакомиться. Короче snap это пакетный менеджер, кто бы мог подумать. Фишка snap — пакеты работают на любом дистрибутиве Ubuntu, Fedora, Arch, Debian и др. без необходимости адаптации под конкретный дистрибутив. То есть создается один пакет с софтиной и он подходит под все дистрибутивы. Красота! Получается что-то вроде докер контейнера, который заработает на любой машине. А еще такой софт запускается в песочнице. Тут безопасники сразу ставят плюсик. А еще установленные пакеты автоматически обновляются в фоне и они всегда актуальны. А еще snap пакет содержит все зависимости и библиотеки, которые требуются для запуска софтины. То есть твой линукс не будет загажен файлами, библиотеками, доп-софтом и т.п. Всё это уже есть в рамках пакета. Никаких конфликтов, никаких танцев с бубном. Да, танцы порой случаются, но редко. Ну ты понял… а когда применять apt, а когда snap? ➡️ snap хорошо подходит для: — для приложений, которые часто обновляются (камень в гитлаб). — упрощённого развёртывания на разных дистрибутивах. — обеспечения безопасности через контейнеризацию. ➡️ apt предпочтительнее для: — системных компонентов и пакетов, тесно интегрированных с операционной системой. — софта, требующего максимальной производительности. Вот и всё! Не такой snap и страшный. Вечерком еще покажу кое-что интересное (не письку). tags: #linux — 🔔 @bashdays➡️ @gitgate

Приглашаем Java- и Kotlin-разработчиков на митап от команды МТС Web Services. Приготовили для вас микс из топовых технических
Приглашаем Java- и Kotlin-разработчиков на митап от команды МТС Web Services. Приготовили для вас микс из топовых технических докладов и неформального общения за барбекю. Когда: 6 декабря, 18:00 Где: площадка «Бетон», Кальварийская ул., 17, г. Минск Программа вечера: — Расскажем, как строим новое облако в 2024-м — Поговорим о разработке IAM в облаке — Обсудим, как создать Development Platform — Разберёмся, что такое реконсиляция и почему она важна для облачной инфраструктуры После официальной части — барбекю и нетворкинг! Регистрация здесь.

🔥 Мой первый секс за деньги Давно у нас про игрульки ничо не было. Пару штук принёс. Картинки не стал добавлять, сам сходишь по ссылкам, посмотришь если интересно. Нашел на просторах SysAdmin Odyssey: Back to the office, официально еще не вышла, но есть бесплатная демка. Игруля для сисадминов, у которых задачи в бэклоге закончились, ну либо для тех кто хочет познать все прелести этой профессии до того, как выебут в жопу. Каждый день новые таски, недовольный отдел бухгалтерии, мерзкий директор и низкая ЗП. Всё как ты любишь. Типа жиза.
Что понравилось — можно спиздить оперативку из системника.
➡️ Потыкай, затягивает: лежит тут 🅰️🅰️ Вторая: hack_me Тут примеряешь чёрную шляпу и хуячишь сервера крупных компаний. Всё как по настоящему, sql инъекции, эксплоиты, логи и т.п. Игра вдохновлена сериалом «Мистер Робот» Написал русскоговорящий чел, по отзывам прям конфета. Лично не тыкал, но коллеги порекомендовали взамен Animal Crossing. Единственный минус, игра жадная, но не дорогая, регулярно под скидками.
Надо бы её заревёрсить и крякме написать. Если найдешь бесплатно, кидай ссылку в комменты, потыкаем дружно и в пряник тебе дадим.
➡️ Забираем тут tags: #games — 🔔 @bashdays➡️ @gitgate

Как-то мы с тобой познакомились с etckeeper, ну дак вот, есть еще такая штука — ChezMoi. Это херня для управления dotfiles (конфигурационными файлами, которые обычно начинаются с точки, например, .bashrc, .vimrc, .gitconfig) на нескольких устройствах. Я сейчас такие файлы просто в гит руками херачу. Из основного у меня это конфиг для вима и zshrc со всякими алиасами и настройками. ChezMoi как раз всю эту рутину берет на себя. Из коробки есть синхронизация между устройствами, поддержка git, создание набора конфигураций для разных ОС, шаблоны и куча еще всякого. На убунту ставится так: snap install chezmoi --classic Для других операционок мануальчик здесь. Ну поставили и чо дальше? А дальше запускаем:
chezmoi init
Добавляем например .bashrc
chezmoi add ~/.bashrc
Эта команда скопирует bashrc в ~/.local/share/chezmoi/dot_bashrc Теперь отредактируй файл:
chezmoi edit ~/.bashrc
И посмотрим изменения:
chezmoi diff
То есть началась вестись история изменений, что довольно удобно. Теперь например ты запортачил свой .bashrc в следствии экспериментов, как откатиться? Запускаем:
chezmoi -v apply
Нажимаешь к пример «o» = overwrite. Хоба! И bashrc успешно восстанавливается. Прекрасно! Теперь как с гитом работать:
chezmoi cd
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:$GITHUB_USERNAME/dotfiles.git
git branch -M main
git push -u origin main
В принципе стандартная практика, первой командой переходим в каталог ~/.local/share/chezmoi ну а дальше база гита. Затем на другой машине делаем:
chezmoi init https://github.com/$GITHUB_USERNAME/dotfiles.git
Конфиги успешно подтягиваются. Если репа приватная, то на офф сайте есть чтиво как это настроить. Я этим пользоваться не буду, мне привычнее свои поделки запускать. Но ты имей в виду что существует такая пепяка. Возможно где-то прикрутишь и оно тебе облегчит трудовые будни. Сайт проекта: https://www.chezmoi.io/ На гитхабе: https://github.com/twpayne/chezmoi tags: #utilites #linux — 🔔 @bashdays➡️ @gitgate

Проект переехал на кубы? Поможем разобраться с новыми задачами 🔥 🔸Научим разворачивать инфраструктуру k8s, обслуживать клас
Проект переехал на кубы? Поможем разобраться с новыми задачами 🔥 🔸Научим разворачивать инфраструктуру k8s, обслуживать кластер и его сервисы 🔸Подготовим к работе в DevOps-проектах 🔸Расскажем, как поддерживать k8s, находить неисправности и решать проблемы 🔸Покажем, как внедрить CI/CD, настраивать мониторинг и управлять контейнеризированными приложениями 16 декабря Слёрм запускает новый поток курса «Kubernetes: База» для инженеров и администраторов. Программа курса обновлена в июле 2024 года. Внутри: 👉 6 недель обучения 👉 73% практики и работы со стендами 👉 5 онлайн-встреч со спикерами 👉 итоговая сертификация Узнать подробности и занять место на потоке — по ссылке ⬅️ Реклама ООО «Слёрм» ИНН 3652901451

Добрый вечер, здрасти. За чо купил, за то и продаю. На повестке — direnv. Эт полезная хуёвина для расширения оболочки. И она достаточно известна среди населения в загнивающем западе. Позволяет загружать и выгружать переменные среды в зависимости от каталога. Грубо говоря — позволяет не засирать .profile всяким дерьмом. Работает так: перед каждым запуском оно проверяет наличие файла (.envrc или .env) в текущем или родительском каталоге. Если такой файл существует, то он загружается в подоболочку bash. И все экспортируемые переменные становятся доступны для текущей оболочки. Работает с большой четверкой: bash, zsh, fish, tcsh
Суть — используем переменные среды для конкретного проекта, не трогая при этом ~/.profile.
Что интересно, direnv это бинарник на golang, что уже подразумевает скорость и все плюхи связанные с этим. Для убунты ставится так: apt install direnv
Как воткнуть это в другое место, подробно написано тут ну или спроси у медведя.
Подключаем так, добавляем в ~/.bashrc:
eval "$(direnv hook bash)"
Для других шелов смотрим тут.
Не забываем перечитать файл ~/.bashrc чтобы изменения вступили в силу. Так, поставили, молодцы! Проверяем чо получилось:
cd /tmp
mkdir my-project

echo ${FOO-bashdays}
На экран выдалось: bashdays Переменная среды FOO не вывелась, логично, дальше:
echo export FOO=foo > .envrc
Ёпта, ошибка direnv: error /tmp/my-project/.envrc is blocked. Run `direnv allow` to approve its content. Сработала защита от дурака, которая запретила нам использовать .envrc. Хе, ща пофиксим!
direnv allow .
Во! Лепота!
direnv: loading /tmp/my-project/.envrc
direnv: export +FOO
Повторяем первую команду:
echo ${FOO-bashdays}
Хуяк и получаем: foo Что и требовалось доказать, direnv отлично справилась с поставленной задачей. Теперь выходим из проекта и смотрим:
cd ..

direnv: unloading

echo ${FOO-bashdays}
Ииии барабанная дробь, у нас вывелось — bashdays! Какая же красота и любовь с первого взгляда! Рекомендую! Однозначно забираем себе в копилку и внедряем в свой воркфлоу, по крайней мере для всяких лабораторных испытаний эта штука подходит идеально. ➡️ Проект на гитхабе: https://github.com/direnv/direnv ⭐️ Star 12.6k tags: #bash #linux — 🔔 @bashdays➡️ @gitgate

Selectel Admin MeetUp 5 декабря в 19:00 Selectel проведет Admin MeetUp. На митапе участники и спикеры рассмотрят практики без
Selectel Admin MeetUp   5 декабря в 19:00 Selectel проведет Admin MeetUp.   На митапе участники и спикеры рассмотрят практики безопасной разработки и способы их внедрения, обсудят, как автоматизировать эти проверки, а также познакомятся поближе с Docker Buildx.   В программе мероприятия три доклада: - «Как защититься от внешних атак с помощью Crowdsec? Обзор альтернативных WAF/IPS/IDS/NGFW решений» Спикер — Андрей Ефремов, инженер по информационной безопасности, Selectel - «Автоматизация DevSecOps: запускаем конвейер». Спикер — Артем Бердашкевич, руководитель отдела обеспечения безопасности в разработке, Positive Technologies - «Мультистейдж-сборка проекта на Docker Buildx: миф или реальность?». Спикер — Верис Евгений, программист отдела разработки Группы управляющих приложений, ИнфоТеКС   Приходите офлайн в офис Selectel в Санкт-Петербурге или подключайтесь онлайн.   Мероприятие бесплатное. Посмотреть программу митапа и зарегистрироваться: https://slc.tl/7llg5 Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwMnDzX

Привет, давай напишем очередной велосипед на Bash. А напишем мы своё подобие команды cat, но с потоками. Конечно можно воспользоваться дополнительной утилитой parallel, но мы лёгких путей не ищем. Глаза боятся, да руки веселятся. Вот что у меня получилось:
#!/bin/bash

file=$1

threads=4

process_line() {
    line="$1"
    echo $line
}

export -f process_line

fifo="/tmp/fifo"
mkfifo "$fifo"
exec 3<>"$fifo"
rm "$fifo"

for ((i = 0; i < threads; i++)); do
    echo >&3
done

while IFS= read -r line; do
    read -u 3
    {
        process_line "$line"
        echo >&3
    } &
done < "$file"

wait
exec 3>&-
Не забываем chmod +x pcat Запускать так: ./pcat.sh input.txt ➡️ Теперь разбираемся: threads указываем количество потоков для чтения текстового файла. process_line = функция, которая будет обрабатывать строку, у меня это простое echo, но можно накручивать любую логику. export -f = экспортируем функцию, чтобы функция была доступна в subprocess (этот момент ранее в постах мы с тобой уже разбирали, ссылку не дам, по поиску найдешь если интересно). fifo = задействуем FIFO для контроля потоков (чуть ниже объясню что это такое за хуйня). mkfifo = создаём именованный канал /tmp/fifo для контроля количества одновременно запущенных потоков. for ((i = 0; = заполняем каналы «семафора» чтобы ограничить потоки. while IFS = читаем файл построчно и обрабатываем строки. read -u 3 = ждем свободный слот «семафора», каждый поток блокируется до тех пор, пока не освободится место в «семафоре». wait exec 3>&- = ждем завершение всех потоков Что такое FIFO?
FIFO = «первым пришёл — первым ушёл».
Представляем ебейшую очередь в магазине: 1. Бабки встают в очередь 2. Первым обслуживают ту бабку, что пришла первой 3. Никто не может сказать — мне только спросить и пройти первым Ну или на примере стопки книг: Если ты складываешь книги в стопку и потом начинаешь снимать их, то ты будешь использовать LIFO (Last In, First Out). Но если ты встал в очередь к кассе — это FIFO. Думаю ты ты понял, тут все просто. Единственное отличие от cat, у нас получилось, что строчки выводятся в порядке завершения потока. Какой поток быстрее завершился тот и папа.
строка4
строка1
строка2
строка3
строка5
строка6
С другой стороны эту поделку можно применить для каких-то задач, где порядок строк в файле неважен, ну или еще для чего-то. Ну и домашка тебе: сделай так, чтобы строчки выводились по порядку (также, как и в файле), но использовалась многопоточность. Пользуйтесь, чо! tags: #bash #linux — 🔔 @bashdays➡️ @gitgate

В сложных распределённых IT-системах разные компоненты постоянно обмениваются сообщениями. Брокеры сообщений нужны, чтобы кон
В сложных распределённых IT-системах разные компоненты постоянно обмениваются сообщениями. Брокеры сообщений нужны, чтобы контролировать этот обмен, — и Apache Kafka один из них. Apache Kafka — это распределённая система, предназначенная для обработки потоков данных в режиме реального времени. Её можно сравнить с почтой — одни сервисы передают туда сообщения-письма, а другие — получают. На курсе «Apache Kafka для разработки и архитектуры» от Яндекс Практикума за 3 месяца вы освоите навыки, которые помогут работать с более сложными продуктами и сможете повысить свой уровень, как специалист. Наш курс не про базу работы с Apache Kafka, а про комплексное погружение в инструмент. Cамое главное никаких давно снятых видео и длинных лекций. Теория и практика проходят в интерактивном учебнике в удобном темпе без жёстких дедлайнов! А воркшопы с опытными разработчиками, рассказывающих о лучших практиках и разбирающих сложные кейсы, можно смотреть в записи, если вы не успеваете их посетить. Начните учиться уже сейчас! Пройдите бесплатный тест и поймите, подходит ли вам курс.

В рот мне логи! suqo Здрасти короче. Все знают команду cat, но не все знают про tac. Так, так, так… Чо это? Этот тот же cat только из Австралии наоборот. Оно выводит содержимое файла или стандартного ввода — в обратном порядке по строкам.
Команда tac входит в состав пакета GNU coreutils, и, как правило, она предустановлена на большинстве Linux-дистрибутивов.
Ща покажу. Есть у нас злой файл:
ножка на ножку и залупа в ладошку
eбутся утки вторые сутки
хуй сосали на вокзале
Запускаем:
tac file.txt

хуй сосали на вокзале
eбутся утки вторые сутки
ножка на ножку и залупа в ладошку
Поняли? Ну либо так:
echo -e "строка 1\nстрока 2\nстрока 3" | tac

строка 3
строка 2
строка 1
А можно прям разделитель указать:
echo "слово1:слово2" | tac -s ":"

слово2
слово1
Где применить? Да где хочешь, можешь логи смотреть, можешь в bash скрипты пихать, можешь из csv бигдату собирать и т.п. Такие дела, изучай! tags: #utilites #linux — 🔔 @bashdays➡️ @gitgate

Не упустите шанс посетить бесплатный вебинар по настройке кластера Elasticsearch 8 от OTUS! 🌟 Спикер Андрей Буранов, опытный
Не упустите шанс посетить бесплатный вебинар по настройке кластера Elasticsearch 8 от OTUS! 🌟 Спикер Андрей Буранов, опытный системный администратор, расскажет о том, как настроить кластер из 3-х нод, определить статус кластера и индексов, а также многое другое. На вебинаре вы узнаете: - 📊 Что такое шарды и реплики - ⚙️ Как настроить кластер Elasticsearch 8 - 🔍 Как определить статус кластера и индексов - 🗺 Как выяснить местоположение шарда и количество его реплик - ➕ Как добавить новую ноду в существующий кластер Присоединяйтесь к нам 26 ноября в 20:00 и получите 10% скидку на курс "Administrator Linux. Professional" при регистрации! 🎉 📚 Программа курса: - Архитектура Linux - Управление, безопасность и мониторинг - Linux и сеть - Сервисы Linux - Проектная работа Вебинар будет полезен системным администраторам и девопсам. Не упустите возможность повысить свою квалификацию! 🚀 👉 Зарегистрироваться на вебинар: https://vk.cc/cFcQaB Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Прочитал статью про сигналы Медведя и захотелось немного разобраться в теме. Немного переписал проги, чтобы можно было от клиента к серверу передавать любые сообщения в виде текста. Алгоритм простой. Используем 10 сигналов (SIGRTMIN+0 - SIGRTMIN+7 для передачи битов, SIGRTMIN+8 - признак окончания символа, SIGRTMIN+9 признак окончания сообщения). Передаются только "единичные биты". SEND_CHAR - "разбирает символ по битам и передает" SEND_MESSAGE - разбирает сообщение по символам и отдает SEND_CHAR. Сохраняем скрипты, chmod +x serv.sh cli.sh В одном терминале ./serv.sh (он выдаст что-то вроде Listener process 340527). В другом терминале ./cli.sh 340527 (нужно подставить ваш номер процесса). При старте клиент сразу передает серверу сообщение "BashBays" А потом можете передать привет медведю. Пустое сообщение завершает клиента. Сервер останавливается через CTRL-C.
#/bin/bash

#serv.sh

declare -i ASC=0
declare MSG=
declare DELAY=0.01
handle_signal() {
  case "$1" in
    W) MSG=${MSG}$(printf "\x$(printf %x $ASC)") 
       ASC=0 ;;
    M) echo $MSG;MSG=;;
    *) ((ASC+=$1));;
  esac
}
#RTMIN=34
trap 'handle_signal 1' RTMIN+0
trap 'handle_signal 2' RTMIN+1
trap 'handle_signal 4' RTMIN+2
trap 'handle_signal 8' RTMIN+3
trap 'handle_signal 16' RTMIN+4
trap 'handle_signal 32' RTMIN+5
trap 'handle_signal 64' RTMIN+6
trap 'handle_signal 128' RTMIN+7
trap 'handle_signal W' RTMIN+8
trap 'handle_signal M' RTMIN+9
echo Listener process $$
while :;do
  sleep $DELAY
done
#!/bin/bash

#cli.sh

if [[ -z $1 ]];then
  echo Need server PID
  exit
fi
declare -ir SERV_PID=$1
declare MESSAGE=BashBays
declare -ir RTM=34

function DELAY(){ sleep 0.02;}

function SEND_CHAR(){
  local -i i ASC
  CUR_CHAR=${1:-" "}
  printf -v ASC "%d" "'$CUR_CHAR"
  for i in {0..7};do
    if [[  $(($ASC%2)) -eq 1 ]];then
#     echo kill '-'$(($i+$RTM)) $SERV_PID
      kill '-'$(($i+$RTM)) $SERV_PID
      DELAY
    fi
    ((ASC/=2))
  done
# echo kill '-'$((8+$RTM)) $SERV_PID
  kill '-'$((8+$RTM)) $SERV_PID
  DELAY
}
function SEND_MESSAGE(){
  local CUR_CHAR
  local MESSAGE=${1:-BashDays}
  local i
  echo  Send message \"$MESSAGE\" to  Server PID=$SERV_PID
  for ((i = 0 ; i < ${#MESSAGE} ; i++));do
    SEND_CHAR ${MESSAGE:$i:1}
  done
# echo kill '-'$((9+$RTM)) $SERV_PID
  kill '-'$((9+$RTM)) $SERV_PID
  DELAY
}

while [[ $MESSAGE ]];do
  SEND_MESSAGE "$MESSAGE"
  read  -p "Input new message:" MESSAGE
done
Для чего может пригодиться эта фигня я не знаю, Но при написании программы выяснил некоторые вещи: 1. Обработка сигналов (по крайней мере SIGRTMIN не прерывает выполнение команд bash). Т.е если выполняется sleep 10m. То обработки можно ждать долго. 2. Обратите внимания на задержки в программах. На сервере ввел задержку, чтобы не сильно грузить процессор, на клиенте задержка больше, чем на сервере, иначе сигналы могут теряться. Кому интересно - можете поиграться. tags: #linux © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

🍋 Кому то лимонов ящик, а кому то от хуя хрящик В выходные нужно отдыхать ребят, выходные заебись!

🔴 Разработка в 1С может быть удобной. А может быть идеальной. Хотите перейти с Конфигуратора на современный инструмент разра
🔴 Разработка в 1С может быть удобной. А может быть идеальной. Хотите перейти с Конфигуратора на современный инструмент разработки? Познакомьтесь с 1С:EDT! Эта система выводит удобство и качество работы на принципиально новый уровень. На открытом уроке мы разберём: - Чем EDT отличается от привычного Конфигуратора. - Какие преимущества этот инструмент даёт разработчикам. - Как начать использовать все его возможности уже сейчас. Спикер Юрий Пасхин — программист-разработчик в компании ЕАЕ-Консалт, опытный руководитель команд, архитектор и наставник. Присоединяйтесь 25 ноября в 20:00 мск. 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/bHBU/ 🟢 Все участники открытого урока получат скидку 15% на курс "Профессиональная разработка в 1С:EDT + Git" до конца ноября Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

А давай я научу тебя девопсу. За 5 дней. Результат до/после гарантирую. Почитал умные книжки, посмотрел ютубчик и научился ку
А давай я научу тебя девопсу. За 5 дней. Результат до/после гарантирую. Почитал умные книжки, посмотрел ютубчик и научился кубы ворочать? Ага-ага. Только тебя палкой не били, а я буду. 🙃 Короче кто не успел запрыгнуть в августе в последний вагон Linux Factory, сейчас самое время, по летнему движу 5000р 2500р Внутри почти 2 сезона: 1. Ansible 2. Gitlab CI/CD YML + Docker + Hashi Vault 3. Traefik 4. Prometheus + Consul + VM + Grafana 5. Terraform (Selectel/Yandex) 6. и многое другое… будут кубы, охуенные циркули и база без воды После интенсива ты охуеешь от бест-практик и научишься делать ха-ра-шо. Киллер фича — ты со мной на связи, решаем вопросы 1x1. Более подробно про интенсив можешь почитать тут и тут. ➡️ Залетай и жми кнопочки: @tormozilla_bot В номере заказа ничего писать не нужно. По всем вопросам можешь писать сюда: @linuxfactorybot

Пост ищем в этом канале, а не в гугле. В комментах пишем время и ссылку на сам пост. Макс к вам придет и отдаст монету. Погна
Пост ищем в этом канале, а не в гугле. В комментах пишем время и ссылку на сам пост. Макс к вам придет и отдаст монету. Погнали чо! #pizza кому интересно: предыдущие пиццы (1, 2, 3)

⚡️Всероссийский Хакатон ФИЦ 2024 🚀Попробуйте себя в одном из предложенных кейсов: 1. Семантический делитель текстов: Разрабо
⚡️Всероссийский Хакатон ФИЦ 2024 🚀Попробуйте себя в одном из предложенных кейсов: 1. Семантический делитель текстов: Разработать алгоритм, который сможет обеспечить точное разделение текста на блоки в рамках произвольно заданных ограничений размера блока. 2. Контекстный перевод названий научных работ: Разработать и реализовать переводчик, который будет переводить названия научных работ с русского на английский. 3. Прогнозирование бизнес драйверов: Разработать решение для задачи прогнозирования временных рядов бизнес-драйверов и произвести прогноз на следующий календарный месяц. 4. Система контроля и управления доступом: Разработка системы контроля и управления доступом в реальном времени. Система будет включать API для управления сотрудниками, точками доступа и интеграцию с системой видеонаблюдения. И другие 16 кейсов смотрите на сайте: https://фиц2024.рф/hackathon Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн. 🏆Призовой фонд: 6 000 000 руб. 🔥Дедлайн регистрации: 26 ноября, 23:59 📅Даты отборочного этапа: 29 ноября - 2 декабря 🦾Даты финала: 3 - 4 декабря Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon Реклама. ООО "Акселератор возможностей". ИНН: 9704005146, erid:2Vtzqx7uLUP

Вчерашний медведь прям в тренды залетел, издеваться над ним больше не будем, пусть ковыляет своей дорогой. Сегодня рассмотрим утилиту vlock. Устанавливается так: apt install vlock Vlock блокирует виртуальную консоль/ли и требует ввода пароля. Короче сидишь ты такой, на ascii картинки рукоблудишь в терминале, заходит мамка и ты такой — vlock бля! Консоль моментально превращается в сообщение — This TTY is now locked. Please press [ENTER] to unlock. Вот и всё! Это типа WIN+L или как там на маках CMD+CTRL+Q, но только для консоли. Локскрин! На случай если у тебя иксов нет, или ты в серверной живешь.
А чем отличается консоль от терминала я писал в этом посте и да, это не одно и тоже!
Чо там этот vlock умеет? Основное:
-c lock only this virtual console, allowing user to switch to other virtual consoles. -a lock all virtual consoles by preventing other users from switching virtual consoles. -n allocate a new virtual console before locking,implies --all. -s disable SysRq while consoles are locked to prevent killing vlock with SAK -t run screen saver plugins after the given amount of time.
🅰️🅰️ Из сочного тут -s отключает сочетания клавиш SysRq, лично не проверял, но будем верить что если на заборе написано — хуй, значит он там есть. 🅰️🅰️
Про Magic SysRq писал тут, обязательно почитай, тема довольно пиздата.
А еще прикол обнаружил в vlock, что если у тебя авторизация (аутентификация) по ключам, то пароль от юзера или рута ты никогда не вспомнишь. Аксиома! Ну и получается разблокировать сеанс уже никак не сможешь. Поэтому с этим поаккуратнее, сначала вспоминай пароли и лишь только потом запускай этот скринлокер. ХЗ кто этой байдой пользуется, но она существует и о ней порой говорят в англоязычном сегменте. Короче я показал, ты почитал. На этом и закончим. Мож где-то пригодится. Давай краба! tags: #utilites #linux — 🔔 @bashdays➡️ @gitgate