Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, 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 638 subscribers, ranking 5 489 in the Technologies & Applications category and 27 586 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 23 638 subscribers.
According to the latest data from 05 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -61 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 19.18%. Within the first 24 hours after publication, content typically collects 13.27% reactions from the total number of subscribers.
- Post reach: On average, each post receives 4 534 views. Within the first day, a publication typically gains 3 137 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 13.
- 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 06 October, 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.
Первая часть тут: https://t.me/bashdays/1561Я уже упоминал программу par2. Она разрабатывалась очень давно, скорее всего во времена ленточных накопителей. И ее логика работы не совсем понятна современным пользователям. Блоки четности разбиваются на несколько файлов. Сделано это было по нескольким причинам: 1. par2 - старая программа, и там есть ограничение в 2 Гб на файл. 2. Раньше сети были медленными, скачать большой файл было проблемой, а для восстановления, как правило, весь файл не нужен. Разработчики предоставили возможность качать только те файлы, которые нужны для восстановления данных. С одной стороны это удобно, с другой ограничивает использование программы ручным режимом. Ну, при наличии большого желания, процесс тоже можно автоматизировать. Кстати, сейчас уже появилась новая версия программы. Par3 в которой уже нет таких ограничений на размеры файлов, но и самой программы пока нет в стандартных репозиториях, поэтому и распространение она пока не получила. На мой взгляд довольно удобным методом восстановления данных обладает rar. Разработчик добавил туда ключ -rr, который к архиву добавляет данные для восстановления. Причем сам файл функциональности не теряет. В далекие годы я и сам не раз пользовался этим архиватором, при переносе данных на дискетах. Он меня не раз спасал. Достаточно добавить 1% данных для восстановления, и это уже спасает от битового гниения (bit rot) и ошибок при передаче по сети. К сожалению rar архиватор платный, даже в мире Linux. (хотя unrar бесплатный). Поэтому в следующих частях создадим ему опенсорсную альтернативу с помощью двух простых bash скриптов.
man par2 man unrarПродолжение следует... 🛠 #devops — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
▶️как перестроить сетевую архитектуру облака под 10 000 гипервизоров на зону доступности ▶️как добавить поддержку NVLink в облачную инфраструктуру ▶️как управлять InfiniBand и балансировать ИИ-кластер ▶️как перестроить DBaaS с помощью Kubernetes ▶️как создать собственную платформу наблюдаемостиА еще вас ждут практические воркшопы, где можно собрать решение под руководством экспертов. Где и когда: ▶️15 октября 2026 года ▶️Офлайн в Москве и онлайн Зарегистрироваться
При переходе к продакшен-нагрузкам важно заранее продумать отказоустойчивость, сценарии переключения между узлами и поведение кластера при плановых работах и сбоях.29 сентября эксперт Cloud․ru проведет вебинар о том, как обеспечить высокую доступность PostgreSQL в облаке. В программе:
▶️как устроен отказоустойчивый кластер в Evolution Managed PostgreSQL ▶️где проходит граница между высокой доступностью и аварийным восстановлением ▶️какую роль играет Multi-AZ-архитектура ▶️для каких задач используются реплики PostgreSQL ▶️как работают ручное и автоматическое переключение ▶️что важно учитывать при эксплуатации PostgreSQL в продакшенеБудет интересно всем, кто работает с PostgreSQL и отвечает за доступность баз данных и надежность инфраструктуры. Зарегистрироваться
Но зачем мне всё это? Я не стал выбирать жизнь, я выбрал кое-что другое. Почему? Да ни почему. Какие могут быть «почему», когда есть hero_in.^^^ цитата из книги Ирвина Уэлша (Trainspotting), специальные средства осуждаю, чисто для словца… Заграницу я не поехал, а сделал более очевидный шаг, забил в поисковик — купить иностранную симкарту с доставкой. И прихуел, как говорится — спрос, рождает предложения. Иностранными симками банчат прям на озоне, прикинув хрен к заднице я заказал себе KZ Activ (артикул не даю, сам легко найдешь), за 500-600 рублей, доставка 2 дня. Перед заказом я прекрасно понимал, что покупаю кота мешке. Негативные отзывы все же пишут криворукие обезьяны. Но кот в мешке оказался живым, единственный нюанс это нужен загранник, все регается на него. Да, регистрация займет 2 дня, после того как вставил симку в телефон, нужно выждать сутки и после первой реги еще сутки. Потом симка успешно заводится и работает в роуминге без абонентской платы. Красота, хули. После всех этих телодвижений можно регать нужные сервисы, смс приходят отовсюду и успешно проходят любые верификации. Теперь со мной часть KZ, ну ты понял, заебал! 🛠 #рабочиебудни — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Вот здесь https://t.me/bashdays/1402 уже немного касался этой проблемы, теперь немного расширим. Часть 1/4.Итак - архивы растут. Диски растут. А надежность при этом падает. Этож и ёжику резиновому понятно, что чем больше файл, тем больше вероятность получить дырочку в правом боку. Конечно, сейчас этим уже озаботились и понавыдумывали всяких правильных файловых систем типа btrfs и zfs. Но они любят новое железо, и особенно память. А как быть, если фирма маленькая, и для хранения бэкапов приходится использовать машины, выведенные из эксплуатации из-за морального устаревания? Они себе вполне могут справляться с задачами архивирования. Но как обеспечить надежность хранения на старом оборудовании? Не нужно ничего придумывать. Все уже
man par2 man smartctl wiki Код Рида — СоломонаПродолжение следует... 🛠 #devops — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
С первой частью можешь ознакомиться здесьСкрипт писался с привлечением ИИ, но мной отлажен, и точно работает. Требует jq и curl. В отличие от телеграма, в максе заявлено, что бот может писать сообщения пользователю тольков течение суток, после последнего сообщения пользователя боту. Поэтому для нормальной работы оповещателя желательно создать группу, добавить туда бота, и от его имени писать. С определением номеров пользователей и групп разбирался по статье Романа. Там очень хорошо описано.
#!/bin/bash
# Скрипт отправляет текстовое сообщение пользователю или в чат
# $1 "user" для отправки пользователю, "chat" для отправки в чат
# $2 ID пользователя или чата, соответственно
# $3 "Текст сообщения в кавычках"
# $4 "Имя файла в кавычках"
# если файл есть, а текста нет - вместо текста ""
# v 20260812
declare -x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
set -euo pipefail
exec 1>&2
declare BASE_URL="https://platform-api2.max.ru" # база API + нужны сert минцифры
declare BOT_TOKEN="AAAAAAAAAAAAAAAAAAA_BBBBBBBB_CCCCCCCCCCCCCCCC"
# === Параметры скрипта ===
case "$#" in
0|1|2)
clear
head -6 "$0"
exit 1 ;;
3)
declare FILE="" ;;
*)
declare FILE=$4
if [[ -f "$FILE" ]];then
clear
echo -e "Файл '$FILE' не найден"
exit 1
fi ;;
esac
if [[ -z "$3" && -z "$4" ]]; then
clear
echo -e "Ошибка. Нет текста или файла."
exit 1
fi
declare -l RECEPIENT=$1
declare ID=$2
declare TEXT=$3
case $RECEPIENT in
user | chat )
declare TO_URL="$BASE_URL/messages?${RECEPIENT}_id=$ID" ;;
*)
clear
echo -e "ошибка параметра 1" $RECEPIENT\\n
head -6 "$0"
exit 1 ;;
esac
#declare -p RECEPIENT ID TEXT FILE TO_URL
# === 1. Получить URL для загрузки файла ===
if [[ -n "$FILE" ]]; then
UPLOAD_META=$(curl -s -X POST \
"$BASE_URL/uploads?type=file" \
-H "Authorization: $BOT_TOKEN")
UPLOAD_URL=$(echo "$UPLOAD_META" | jq -r '.url')
if [[ -z "$UPLOAD_URL" || "$UPLOAD_URL" == "null" ]]; then
echo "Не удалось получить URL для загрузки"
echo "Ответ API: $UPLOAD_META"
exit 2
fi
# === 2. Загрузить файл ===
UPLOAD_RESULT=$(curl -s -X POST \
"$UPLOAD_URL" \
-F "data=@$FILE")
# Сохраняем результат загрузки в переменную для вложения
ATTACHMENT_PAYLOAD="$UPLOAD_RESULT"
fi
# === 3. Формируем JSON сообщения ===
# Если есть файл, добавляем attachment
if [[ -n "$FILE" ]]; then
MESSAGE_JSON=$(jq -n \
--arg text "$TEXT" \
--argjson attachment "$ATTACHMENT_PAYLOAD" \
'{
text: $text,
attachments: [
{
type: "file",
payload: $attachment
}
]
}')
else
MESSAGE_JSON=$(jq -n --arg text "$TEXT" '{text: $text}')
fi
sleep 3 # для антифлуда
# === 4. Отправляем сообщение ===
curl -s -X POST \
"$TO_URL" \
-H "Authorization: $BOT_TOKEN" \
-H "Content-Type: application/json" \
-d "$MESSAGE_JSON" | jq .
Сохраняем send_max.sh
chmod +x ./send_max.sh
/send_max.sh "chat" 123456 "text" "/path/to/file"
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog1. У MAX под Linux не работал звук. Была проблема с прослушиванием аудио/видео и звонками. 2. MAX постоянно допиливают, поэтому меняются адреса для работы с API. 3. Регистрация бота — небольшой квест, но вполне решаемый. И всё это бесплатно.Большинство проблем решается с помощью поиска или ИИ. Скрипты брал оттуда же, но пришлось немного адаптировать для себя. Но за неделю разобрался. Всё заработало. Если кому-то понадобится рабочий shell-скрипт для отправки в сообщении текста, файла или текста + файла — пишите, приведу в следующем сообщении. Первый вопрос Пропустим: там много разных проблем может быть, но моя решилась после запуска в консоли:
/usr/share/max/bin/max-service/bin/max-service
Нужно было просто доставить библиотеки и создать пару линков.
Второй
Есть несколько адресов для общения с MAX по API:
- https://platform-api.max.ru
- https://platform-api2.max.ru
На данный момент работают оба, но рекомендуют второй. Но у него тоже своя фишка. Он не работает без сертификатов Минцифры.
Третий — регистрация бота
В отличие от Telegram зарегистрировать бота могут только ИП и юрлица.
Делается это всё при наличии квалифицированной электронной подписи. Юрлицо может зарегистрировать до 5 ботов, причём требуется указать их назначение. Каждый бот утверждается модератором. На это уходит до 24 часов, но у меня прошло быстро, часов за 6.
Ну, в общем, как-то так. С учётом того, что в ближайший месяц проблемы со связью будут нарастать, рекомендую подсуетиться заранее.
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog