Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
Больше📈 Аналитический обзор Telegram-канала Bash Days | Linux | DevOps
Канал Bash Days | Linux | DevOps (@bashdays) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 23 797 подписчиков, занимая 5 708 место в категории Технологии и приложения и 28 124 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 23 797 подписчиков.
Согласно последним данным от 16 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -201, а за последние 24 часа — -10, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 20.40%. В первые 24 часа после публикации контент обычно набирает 11.53% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 4 855 просмотров. В течение первых суток публикация набирает 2 744 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 17.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как bashdays, linux, bash, docker, скрипт.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.r...”
Благодаря высокой частоте обновлений (последние данные получены 17 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
Если ты студент, можешь хорошо выебнуться своей длинной писькой перед преподами. И может тебя по телеку покажут, как когда-то создателя «BolgenOS» или антивируса Бабушкина.➡️ Исходники тут / Демка тут ps: А есть еще такой проект: mysh tags: #utilites — 🔔 @bashdays➡️ @gitgate
Не знаю, писал ли я вторую часть, но если найду, закину!tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate
local0.* @log.bashdays.com:514
И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?
Магии тут нет, символ «@» означает протокол передачи UDP.
Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.
ㅤ
Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.
local0.* @@log.bashdays.com:514
По итогу получаешь:
- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.
Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.
Запоминаем:
Раз «собака» = UDP
Два «собака» = TCP
Что чаще применяют?
UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».
Такие дела.
tags: #linux #monitoring
—
🔔 @bashdays➡️ @gitgatelocal0 – local7. Чо эт ваще такое?
ㅤ
Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.
Суть этих категорий — не смешивать выхлоп пользовательских программ с системными логами.Системные логи это:
auth, daemon, mail, kern и т.д. Эти штуки ты можешь встретить например при настройке rsyslog конфига.
Рассмотрим пример:
import syslog
syslog.openlog(ident="BashDays", facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, "Привет из local0")
Не проверял, но суть ты поймешь.
Здесь я завернул логи приложения в категорию local0. И теперь могу открыть этот local0 и обрабатывать как мне нужно.
Например, закинуть его в эластик:
local0.* @log.bashdays.com:514
Ну или обработать локально в файл:
local0.* /var/log/local0.log
Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.
Практика использования
local0: логи веб-сервера local1: для docker контейнеров local2: логи бекапов local3: логи крон скриптов local4–local7: резервныеТакие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости. Изучай! tags: #linux #monitoring — 🔔 @bashdays➡️ @gitgate
По реверс-шелам у меня есть отдельный пост с подробным мануалом.🎄 Ну и еще раз с Наступающим! Нарезали салатиков? tags: #utilites #linux #security — 🔔 @bashdays➡️ @gitgate
sort "filename"|uniq
ㅤ
Я уже также приводил конструкцию на awk которая извлекает из файла уникальные значения, но без требования сортировки:
awk '!a[$0]++' $RF
Она основана на использовании ассоциативных массивов, у которых ключ (текстовый индекс) всегда уникален.
Алгоритм описан здесь.Я подумал, что на bash такое тоже можно реализовать, ведь в bash тоже есть ассоциативные массивы. Да, конечно не так изящно, и уж, конечно, не быстро. Но зато чистый bash. Но может кому-то пригодится. Приведу сразу все примеры:
#!/bin/bash
clear
declare RF="./rnd_file.txt"
:> $RF # создали файл 10000 значений
# в диапазоне 0-4
for i in {1..10000};do
echo $(($SRANDOM%5))>>$RF
done
echo '#results'
echo '#sort|uniq'
sort $RF|uniq
echo '#uniq on AWK'
awk '!a[$0]++' $RF
echo '#uniq on #BASH'
declare -A A=
cat $RF |
while read -e rec;do
((A["$rec"]++)) || echo "$rec"
done
#results
#sort|uniq
#0
#1
#2
#3
#4
#uniq on AWK
#1
#2
#4
#0
#3
#uniq on #BASH
#1
#2
#4
#0
#3
Напомню, что алгоритм на awk/bash держит весь массив уникальных значений в памяти, поэтому при больших файлах ее может потребоваться много. Хотя при реализации на bash, Вы скорее умрете от старости, чем закончится память :-)
tags: #bash #linux
—
🔔 @bashdays➡️ @gitgatechmod и chown. Ну вот блядь так получилось. Как только нужно права поменять или атрибуты поставить — хуй там плавал, начинаю троить и перепроверять себя в гугле.
ㅤ
На помощь пришли «якоря». Это что-то из психологии или НЛП, точно уже не помню, не скажу.
Кароче когда начинаешь троить, на примере с ложкой, задаёшь себе вопрос — ты какой рукой жопу вытираешь? Вот та рука у тебя Правая. Ну а если ты левша, соответственно ревёрсим.
Аналогичный якорь получился установить с чмодами и човнами. Но уже без вопросов, а с осознания того что означают эти слова.
chown = change owner chmod = change modeВ первом случае ключевое слово: Owner (владелец), английский я знаю, поэтому якорюсь на английское «овнер». Овнер значит работа с правами. (часто слышал от пиэмов — кто сука овнер у этой задачи?) Соответственно для второго, ключевое слово: Mode (режим доступа), якорюсь конкретно на «моде». У этого файла должны быть «модные» права доступа. Такое вот наглядное применение «психологических» приёмчиков в айти. Теперь я эти команды никогда не путаю и даже якоря уже не нужны, довел руки до мышечной памяти. Кстати с ключами по tar аналогично, в чатике как-то обсуждали эту тему. Илья закинул якорей типа:
czf - create ze file
xzf - eXtract ze file
Такие дела. Любой кретинизм можно забагфиксить, хоть и костылями, но работать будет.
А у тебя какой «кретинизм»? На чем троишь? Пиши в комменты, попиздим.
tags: #linux #рабочиебудни
—
🔔 @bashdays➡️ @gitgateПубликую как есть, оптимизировать задачи не было, нужно было сделать вчера.
#!/bin/bash
# Херачим переменные
TOKEN="BOT_TOKEN"
CHAT_ID="CHAT_ID"
USER=$(whoami)
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
IMAGE_PATH="/tmp/ebalo-${USER}-${TIMESTAMP}.png"
# Делаем фотку с вебки
if ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 "$IMAGE_PATH"; then
echo "✅ Ебальник успешно захвачен: $IMAGE_PATH"
else
echo "❌ Ошибка: Не удалось захватить ебальник"
exit 1
fi
# Пулим фотку в телегу
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendPhoto" \
-F chat_id="$CHAT_ID" \
-F photo="@$IMAGE_PATH" \
-F caption="🚨 Хакер пойман, лови ебальник: $USER на $(hostname)")
# Проверяем респонс
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo "📨 Ебальник успешно отправлен в Telegram"
else
echo "❌ Ошибка: Не удалось отправить ебальник в Telegram"
echo "Ответ Telegram API: $RESPONSE"
fi
# Подчищаем за собой
rm -f "$IMAGE_PATH"
Делаем скрипт исполняемым (иксим через чмод), кидаем этот скрипт например сюда: /usr/local/bin/
Добавляем строчку в /etc/pam.d/common-auth
auth optional pam_exec.so /usr/local/bin/ebalo_send.sh
optional = скрипт не блокирует аутентификацию, даже если выплюнет ошибку
Если хочешь чтобы скрипт был обязателен для выполнения, замени optional на required.
Работает так:
- При неудачной аутентификации PAM вызывает скрипт ebalo_send.sh
- Скрипт делает снимок ебальника с камеры и отправляет его в телегу
Да, не забудь проверить что у PAM есть разрешение на доступ к /dev/video0 и на выполнение скрипта.Такие дела. Бери на вооружение, может где-то и пригодится. Ну и свои варианты кидай в комменты, всяко чото интересное всплывет. tags: #linux #security #bash — 🔔 @bashdays➡️ @gitgate
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
