Всем привет, с вами TagdTagd!
Я тут вынужденно перешёл на MAX. Просто Telegram перестал работать хорошо. Пришлось разбираться с новым API, переделывать уведомления с Telegram на MAX. Решил вот с вами поделиться опытом — может, кому-то пригодится.
За это время пришлось решить несколько проблем:
Большинство проблем решается с помощью поиска или ИИ. Скрипты брал оттуда же, но пришлось немного адаптировать для себя. Но за неделю разобрался. Всё заработало. Если кому-то понадобится рабочий shell-скрипт для отправки в сообщении текста, файла или текста + файла — пишите, приведу в следующем сообщении.
Первый вопрос
Пропустим: там много разных проблем может быть, но моя решилась после запуска в консоли:
Нужно было просто доставить библиотеки и создать пару линков.
Второй
Есть несколько адресов для общения с MAX по API:
- https://platform-api.max.ru
- https://platform-api2.max.ru
На данный момент работают оба, но рекомендуют второй. Но у него тоже своя фишка. Он не работает без сертификатов Минцифры.
Третий — регистрация бота
В отличие от Telegram зарегистрировать бота могут только ИП и юрлица.
Делается это всё при наличии квалифицированной электронной подписи. Юрлицо может зарегистрировать до 5 ботов, причём требуется указать их назначение. Каждый бот утверждается модератором. На это уходит до 24 часов, но у меня прошло быстро, часов за 6.
Ну, в общем, как-то так. С учётом того, что в ближайший месяц проблемы со связью будут нарастать, рекомендую подсуетиться заранее.
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Я тут вынужденно перешёл на MAX. Просто Telegram перестал работать хорошо. Пришлось разбираться с новым API, переделывать уведомления с Telegram на MAX. Решил вот с вами поделиться опытом — может, кому-то пригодится.
За это время пришлось решить несколько проблем:
1. У 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.
Ну, в общем, как-то так. С учётом того, что в ближайший месяц проблемы со связью будут нарастать, рекомендую подсуетиться заранее.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет, с вами TagdTagd. И это вторая часть. Практическая.
Скрипт писался с привлечением ИИ, но мной отлажен, и точно работает. Требует jq и curl.
В отличие от телеграма, в максе заявлено, что бот может писать сообщения пользователю тольков течение суток, после последнего сообщения пользователя боту.
Поэтому для нормальной работы оповещателя желательно создать группу, добавить туда бота, и от его имени писать.
С определением номеров пользователей и групп разбирался по статье Романа. Там очень хорошо описано.
Сохраняем
🛠 #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.shchmod +x ./send_max.sh
/send_max.sh "chat" 123456 "text" "/path/to/file"
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой стороны. Поговорим о сохранности данных.
Итак - архивы растут. Диски растут. А надежность при этом падает. Этож и ёжику резиновому понятно, что чем больше файл, тем больше вероятность получить дырочку в правом боку.
Конечно, сейчас этим уже озаботились и понавыдумывали всяких правильных файловых систем типа btrfs и zfs. Но они любят новое железо, и особенно память. А как быть, если фирма маленькая, и для хранения бэкапов приходится использовать машины, выведенные из эксплуатации из-за морального устаревания?
Они себе вполне могут справляться с задачами архивирования. Но как обеспечить надежность хранения на старом оборудовании?
Не нужно ничего придумывать. Все ужеукрадено придумано до нас.
По крайней мере в мире Linux. Есть такая прога - par2. Она создает par2-файлы с кодами Рида-Соломона, для файлов или каталогов. Это позволяет восстановить файл в случае повреждения, а если par2 создавался для каталога, то и в случае полного уничтожения файла.
Фактически с помощью этой программы можно создавать снапшоты ФС. Но конечно, чудес в жизни не бывает. Если размер файлов четности (par2) 10% от файлов данных, то и восстановить данные можно будет при повреждении не более 10%. Короче, par2 - это такой RAID для бедных, который защищает от небольшой потери данных.
Я не буду здесь описывать конкретные примеры использования, сейчас уже все освоили ИИ, а он подскажет решения для Вашей задачи лучше, скажу только, что можно на старенькой машине выделить два диска, например один на 2Тб, а другой на 240Гб.
На большом можно размещать архивы, а на маленьком контрольные суммы к ним. Да, такая схема не защитит от выхода из строя диска или контроллера, но вполне может защитить от битового гниения (bit rot), плохих секторов (bad block), или ошибок при передаче файла по сети.
Конечно, не стоит складывать все яйца в одну корзину. Нужно взять две такие машины в разных местах. Это будет гораздо надежнее, чем одна машина с RAID-Z2. Ну, и контроль дисков с помощью smartctl из пакета smarmontools никто не отменял.
Продолжение следует...
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Вот здесь https://t.me/bashdays/1402 уже немного касался этой проблемы, теперь немного расширим. Часть 1/4.
Итак - архивы растут. Диски растут. А надежность при этом падает. Этож и ёжику резиновому понятно, что чем больше файл, тем больше вероятность получить дырочку в правом боку.
Конечно, сейчас этим уже озаботились и понавыдумывали всяких правильных файловых систем типа btrfs и zfs. Но они любят новое железо, и особенно память. А как быть, если фирма маленькая, и для хранения бэкапов приходится использовать машины, выведенные из эксплуатации из-за морального устаревания?
Они себе вполне могут справляться с задачами архивирования. Но как обеспечить надежность хранения на старом оборудовании?
Не нужно ничего придумывать. Все уже
По крайней мере в мире Linux. Есть такая прога - par2. Она создает par2-файлы с кодами Рида-Соломона, для файлов или каталогов. Это позволяет восстановить файл в случае повреждения, а если par2 создавался для каталога, то и в случае полного уничтожения файла.
Фактически с помощью этой программы можно создавать снапшоты ФС. Но конечно, чудес в жизни не бывает. Если размер файлов четности (par2) 10% от файлов данных, то и восстановить данные можно будет при повреждении не более 10%. Короче, par2 - это такой RAID для бедных, который защищает от небольшой потери данных.
Я не буду здесь описывать конкретные примеры использования, сейчас уже все освоили ИИ, а он подскажет решения для Вашей задачи лучше, скажу только, что можно на старенькой машине выделить два диска, например один на 2Тб, а другой на 240Гб.
На большом можно размещать архивы, а на маленьком контрольные суммы к ним. Да, такая схема не защитит от выхода из строя диска или контроллера, но вполне может защитить от битового гниения (bit rot), плохих секторов (bad block), или ошибок при передаче файла по сети.
Конечно, не стоит складывать все яйца в одну корзину. Нужно взять две такие машины в разных местах. Это будет гораздо надежнее, чем одна машина с RAID-Z2. Ну, и контроль дисков с помощью smartctl из пакета smarmontools никто не отменял.
man par2
man smartctl
wiki Код Рида — Соломона
Продолжение следует...
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, пополнил баланс через хуй-пизда-копыто и вот они финальные метры до финиша… Хуй там плавал.
Эта залупа требует верификацию по номеру телефона, естественно РФ номера не подходят. Почесал я репу, поплакал, но нюни не стал распускать. Мыж инженеры, надо искать способы решить этот внезапный квест.
Покупка одноразового номера не подходила, велика вероятность что эта шляпа через день запросит новое подтверждение. А покупать уже активированный аккаунт я тоже в рот ебал, не люблю я такое. Мне нужно чтобы это было мое и очень желательно — бесплатно.
Всякие eSIM я тоже ебал, сегодня она работает, а завтра превращается в тыкву.
Ну и остался самый очевидный вариант — сгонять заграницу на выходные и разжиться симкой загнивающего запада.
^^^ цитата из книги Ирвина Уэлша (Trainspotting), специальные средства осуждаю, чисто для словца…
Заграницу я не поехал, а сделал более очевидный шаг, забил в поисковик — купить иностранную симкарту с доставкой. И прихуел, как говорится — спрос, рождает предложения.
Иностранными симками банчат прям на озоне, прикинув хрен к заднице я заказал себе KZ Activ (артикул не даю, сам легко найдешь), за 500-600 рублей, доставка 2 дня. Перед заказом я прекрасно понимал, что покупаю кота мешке. Негативные отзывы все же пишут криворукие обезьяны.
Но кот в мешке оказался живым, единственный нюанс это нужен загранник, все регается на него. Да, регистрация займет 2 дня, после того как вставил симку в телефон, нужно выждать сутки и после первой реги еще сутки. Потом симка успешно заводится и работает в роуминге без абонентской платы.
Красота, хули. После всех этих телодвижений можно регать нужные сервисы, смс приходят отовсюду и успешно проходят любые верификации.
Теперь со мной часть KZ, ну ты понял, заебал!
🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Эта залупа требует верификацию по номеру телефона, естественно РФ номера не подходят. Почесал я репу, поплакал, но нюни не стал распускать. Мыж инженеры, надо искать способы решить этот внезапный квест.
Покупка одноразового номера не подходила, велика вероятность что эта шляпа через день запросит новое подтверждение. А покупать уже активированный аккаунт я тоже в рот ебал, не люблю я такое. Мне нужно чтобы это было мое и очень желательно — бесплатно.
Всякие eSIM я тоже ебал, сегодня она работает, а завтра превращается в тыкву.
Ну и остался самый очевидный вариант — сгонять заграницу на выходные и разжиться симкой загнивающего запада.
Но зачем мне всё это? Я не стал выбирать жизнь, я выбрал кое-что другое. Почему? Да ни почему. Какие могут быть «почему», когда есть hero_in.
^^^ цитата из книги Ирвина Уэлша (Trainspotting), специальные средства осуждаю, чисто для словца…
Заграницу я не поехал, а сделал более очевидный шаг, забил в поисковик — купить иностранную симкарту с доставкой. И прихуел, как говорится — спрос, рождает предложения.
Иностранными симками банчат прям на озоне, прикинув хрен к заднице я заказал себе KZ Activ (артикул не даю, сам легко найдешь), за 500-600 рублей, доставка 2 дня. Перед заказом я прекрасно понимал, что покупаю кота мешке. Негативные отзывы все же пишут криворукие обезьяны.
Но кот в мешке оказался живым, единственный нюанс это нужен загранник, все регается на него. Да, регистрация займет 2 дня, после того как вставил симку в телефон, нужно выждать сутки и после первой реги еще сутки. Потом симка успешно заводится и работает в роуминге без абонентской платы.
Красота, хули. После всех этих телодвижений можно регать нужные сервисы, смс приходят отовсюду и успешно проходят любые верификации.
Теперь со мной часть KZ, ну ты понял, заебал!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 77
Please open Telegram to view this post
VIEW IN TELEGRAM
Архивирование и хранение. Часть 2/4.
Всем привет, с вами снова TagdTagd.
Я уже упоминал программу par2. Она разрабатывалась очень давно, скорее всего во времена ленточных накопителей. И ее логика работы не совсем понятна современным пользователям. Блоки четности разбиваются на несколько файлов. Сделано это было по нескольким причинам:
1. par2 - старая программа, и там есть ограничение в 2 Гб на файл.
2. Раньше сети были медленными, скачать большой файл было проблемой, а для восстановления, как правило, весь файл не нужен.
Разработчики предоставили возможность качать только те файлы, которые нужны для восстановления данных. С одной стороны это удобно, с другой ограничивает использование программы ручным режимом. Ну, при наличии большого желания, процесс тоже можно автоматизировать.
Кстати, сейчас уже появилась новая версия программы. Par3 в которой уже нет таких ограничений на размеры файлов, но и самой программы пока нет в стандартных репозиториях, поэтому и распространение она пока не получила.
На мой взгляд довольно удобным методом восстановления данных обладает rar.
Разработчик добавил туда ключ -rr, который к архиву добавляет данные для восстановления. Причем сам файл функциональности не теряет.
В далекие годы я и сам не раз пользовался этим архиватором, при переносе данных на дискетах. Он меня не раз спасал. Достаточно добавить 1% данных для восстановления, и это уже спасает от битового гниения (bit rot) и ошибок при передаче по сети.
К сожалению rar архиватор платный, даже в мире Linux. (хотя unrar бесплатный). Поэтому в следующих частях создадим ему опенсорсную альтернативу с помощью двух простых bash скриптов.
Продолжение следует...
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Всем привет, с вами снова TagdTagd.
Первая часть тут: https://t.me/bashdays/1561
Я уже упоминал программу par2. Она разрабатывалась очень давно, скорее всего во времена ленточных накопителей. И ее логика работы не совсем понятна современным пользователям. Блоки четности разбиваются на несколько файлов. Сделано это было по нескольким причинам:
1. par2 - старая программа, и там есть ограничение в 2 Гб на файл.
2. Раньше сети были медленными, скачать большой файл было проблемой, а для восстановления, как правило, весь файл не нужен.
Разработчики предоставили возможность качать только те файлы, которые нужны для восстановления данных. С одной стороны это удобно, с другой ограничивает использование программы ручным режимом. Ну, при наличии большого желания, процесс тоже можно автоматизировать.
Кстати, сейчас уже появилась новая версия программы. Par3 в которой уже нет таких ограничений на размеры файлов, но и самой программы пока нет в стандартных репозиториях, поэтому и распространение она пока не получила.
На мой взгляд довольно удобным методом восстановления данных обладает rar.
Разработчик добавил туда ключ -rr, который к архиву добавляет данные для восстановления. Причем сам файл функциональности не теряет.
В далекие годы я и сам не раз пользовался этим архиватором, при переносе данных на дискетах. Он меня не раз спасал. Достаточно добавить 1% данных для восстановления, и это уже спасает от битового гниения (bit rot) и ошибок при передаче по сети.
К сожалению rar архиватор платный, даже в мире Linux. (хотя unrar бесплатный). Поэтому в следующих частях создадим ему опенсорсную альтернативу с помощью двух простых bash скриптов.
man par2
man unrar
Продолжение следует...
—
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Мы создаем программно-аппаратные комплексы под брендом Скала^р, проектируем уникальные инфраструктуры и сервисы для высоконагруженных систем и формируем профессиональную среду для тех, кто развивает цифровую инфраструктуру страны.
До 14 ноября проходит голосование соискателей, и нам очень пригодится ваша поддержка.
Чтобы проголосовать, нужно:
Готово! Спасибо за поддержку
А если вы хотите узнать больше о наших технологиях и подходах, заглядывайте в блог Группы Rubytech на Хабре.
Реклама. ООО «Рубитех», ИНН 7702404085, erid: 9RCQq4g6SY6boowKw6RB4XSdzqe3x42k2dVykBjEBKzN9tiwvbrp7DV78
Please open Telegram to view this post
VIEW IN TELEGRAM
Реанимируем зомбоящик
Я тут имбу тебе принес, щас расскажу. Короче предыстория, есть у меня телевизор на кухне под названием — Хуёмоё. Первый год эта залупа работала вменяемо, ну а потом начались приколы, толи оно обновилось, толи еще чего.
Короче эта хрень просто висела и пылилась, покупать новый тивилизор я в рот ебал, а официальной и облегченной прошивки не существовало, да и девайс уже снят с поддержки.
На днях мне попалась репка Cleanyourtv и это стало спасением. С помощью нее можно практически любой телек реанимировать, оно зачищает вообще всё внутри и оставляет только то, что тебе нужно.
Я оставил только SmartTube, Jellyfin, Wink, Kinopub, Vlc ну и там какие-то еще сервисные штуки которые мне нужны.
Теперь мой телевизор не просто летает, он блядь чемпион мира по скорости. Выпилилось абсолютно всё лишнее, весь нахуй гугол в поймоку. А по итогу получил даже новую морду.
Самое главное на телеке включить режим разработчика и активировать отладку по усб, ну и к вифи подключить. А дальше я просто пи-агенту скинул ссылку на репу и сказал, что я хочу, ну и спустя 10 минут я получил результат.
Да, наверное можно было руками все проделать, но чёт я и это в рот ебал, потому, что не был уверен что получится и убивать на это полдня совсем не хотелось.
Кстати вчера еще нашел несколько подобных решений на гитхабе, но про них писать не буду, если интересно поищи сам, мне хватило того, что я нашел. Ну и через агента можно там всяких штук удаленно наставить если уж очень хочется.
Изучай, мож тоже реанимируешь свой зомбоящик.
🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Я тут имбу тебе принес, щас расскажу. Короче предыстория, есть у меня телевизор на кухне под названием — Хуёмоё. Первый год эта залупа работала вменяемо, ну а потом начались приколы, толи оно обновилось, толи еще чего.
Короче эта хрень просто висела и пылилась, покупать новый тивилизор я в рот ебал, а официальной и облегченной прошивки не существовало, да и девайс уже снят с поддержки.
На днях мне попалась репка Cleanyourtv и это стало спасением. С помощью нее можно практически любой телек реанимировать, оно зачищает вообще всё внутри и оставляет только то, что тебе нужно.
Я оставил только SmartTube, Jellyfin, Wink, Kinopub, Vlc ну и там какие-то еще сервисные штуки которые мне нужны.
Теперь мой телевизор не просто летает, он блядь чемпион мира по скорости. Выпилилось абсолютно всё лишнее, весь нахуй гугол в поймоку. А по итогу получил даже новую морду.
Самое главное на телеке включить режим разработчика и активировать отладку по усб, ну и к вифи подключить. А дальше я просто пи-агенту скинул ссылку на репу и сказал, что я хочу, ну и спустя 10 минут я получил результат.
Да, наверное можно было руками все проделать, но чёт я и это в рот ебал, потому, что не был уверен что получится и убивать на это полдня совсем не хотелось.
Кстати вчера еще нашел несколько подобных решений на гитхабе, но про них писать не буду, если интересно поищи сам, мне хватило того, что я нашел. Ну и через агента можно там всяких штук удаленно наставить если уж очень хочется.
Изучай, мож тоже реанимируешь свой зомбоящик.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Архивирование и хранение. Часть 3/4.
Всем привет, с вами TagdTagd.
На мой взгляд лучшим аналогом winrar на Linux является 7zip. И жмет качественно и быстро и удобный GUI для пользователей. И мультиплатформенный. Есть, правда, и недостатки:
1. Не сохраняет права (решается предварительным созданием tar)
2. Ну, напрочь отсутствуют средства восстановления. Если вдруг архив разбился — восстановить из него что-то получится едва ли.
Но это как раз проистекает из философии nix. Каждая программа должна выполнять одну функцию, но делать это хорошо. 7zip жмет очень качественно. А остальное исправим.
Итак, многие знают, что если к 7z архиву приписать другой файл «в хвост», то архив не перестанет быть архивом. Просто при тестировании и распаковке появится замечание: «WARNINGS: There are data after the end of archive».
Вот этим и воспользуемся. Берем архив, создаем par2 файл, и с помощью (
Достоинства этого метода:
1. Архив полностью сохраняет функциональность. Его можно прям без разделения взять и разархивировать.
2. Он содержит информацию для восстановления, которой можно воспользоваться.
К небольшим недостаткам данного метода можно отнести:
1. par2 запоминает имена файлов в момент создания par2-файла. То есть если par2 был создан для file.7z, а потом вы его объединили и переименовали в file77.7zpar2, то восстановится файл file.7z. Но мне кажется это не существенно, по сравнению с потерей данных.
2. Для восстановления потребуется объем места,
3. Максимальный размер защищаемого файла <900Гб при
Собственно скрипт:
🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Всем привет, с вами TagdTagd.
Первая часть тут: https://t.me/bashdays/1561
Вторая часть тут: https://t.me/bashdays/1574
На мой взгляд лучшим аналогом winrar на Linux является 7zip. И жмет качественно и быстро и удобный GUI для пользователей. И мультиплатформенный. Есть, правда, и недостатки:
1. Не сохраняет права (решается предварительным созданием tar)
2. Ну, напрочь отсутствуют средства восстановления. Если вдруг архив разбился — восстановить из него что-то получится едва ли.
Но это как раз проистекает из философии nix. Каждая программа должна выполнять одну функцию, но делать это хорошо. 7zip жмет очень качественно. А остальное исправим.
Итак, многие знают, что если к 7z архиву приписать другой файл «в хвост», то архив не перестанет быть архивом. Просто при тестировании и распаковке появится замечание: «WARNINGS: There are data after the end of archive».
Вот этим и воспользуемся. Берем архив, создаем par2 файл, и с помощью (
cat file.7z file.par2 > file.7zpar2) сливаем в новый формат.Достоинства этого метода:
1. Архив полностью сохраняет функциональность. Его можно прям без разделения взять и разархивировать.
2. Он содержит информацию для восстановления, которой можно воспользоваться.
К небольшим недостаткам данного метода можно отнести:
1. par2 запоминает имена файлов в момент создания par2-файла. То есть если par2 был создан для file.7z, а потом вы его объединили и переименовали в file77.7zpar2, то восстановится файл file.7z. Но мне кажется это не существенно, по сравнению с потерей данных.
2. Для восстановления потребуется объем места,
(size file.7zpar2)*23. Максимальный размер защищаемого файла <900Гб при
RECV_PROMILE=1 (ограничения 2 Гб на par2 файл)Собственно скрипт:
#!/bin/bash
# (c) Tagd v.2026-09-08
# merge restore information (par2) to end of file
# if no output file, recovery record added in place
# and file will be renamed
# usage: create_par2.sh /path/inputfile.7z [/path/outputfile.7zpar2]
#
declare -i RECV_PROMILE=10 # size recovery info (must <2Gb) from input file
declare -i BLOCK_COUNT=2000 # 2 - 32764
declare -i RECV_BCOUNT=$((BLOCK_COUNT*RECV_PROMILE/1000))
declare -i RESULT=2 I=0
declare -x PATH="/usr/local/bin:/usr/bin:/bin"
(($#))|| { head -7 "$0";exit; } #help
declare INFILE_NAME="$1"
declare OUTFILE_NAME="${1}par2"
declare PARFILE_NAME="$INFILE_NAME.par2"
declare START_BLOCK="00000"
(($#==2)) && OUTFILE_NAME="$2"
[[ -f "$INFILE_NAME" ]] || { echo no file $INFILE_NAME >&2; exit 3; } #file not found
[[ -f "$OUTFILE_NAME" ]] && rm "$OUTFILE_NAME"
((BLOCK_COUNT<2)) && BLOCK_COUNT=2
((BLOCK_COUNT>32764)) && BLOCK_COUNT=32764
((RECV_BCOUNT<2)) && RECV_BCOUNT=2
((RECV_BCOUNT>32764)) && RECV_BCOUNT=32764
START_BLOCK=${START_BLOCK::${#RECV_BCOUNT}}
rm "$INFILE_NAME"*.par2 2>/dev/null
par2 create -qq -n1 -b${BLOCK_COUNT} -c${RECV_BCOUNT} "$PARFILE_NAME" "$INFILE_NAME" && ((--RESULT))
# -b<n> Set the Block‐Count
# -c<n> Recovery block count (don't use both -r and -c)
# -n<n> Number of recovery files (don't use both -n and -l)
# -qq silent mode
RECV_VOL="$INFILE_NAME.vol${START_BLOCK}+${RECV_BCOUNT}.par2"
if (($#==2));then #merge
cat "$INFILE_NAME" "$RECV_VOL" >"$OUTFILE_NAME" && ((--RESULT))
else #merge in place
cat "$RECV_VOL" >>"$INFILE_NAME" &&
mv "$INFILE_NAME" "$OUTFILE_NAME" && ((--RESULT))
fi
rm "$INFILE_NAME"*.par2 2>/dev/null
exit $RESULT
chmod +x ./create_par2.sh man 7z
man par2
—
Please open Telegram to view this post
VIEW IN TELEGRAM
До Импульса Т1 — одна неделя ⚡️
19 ноября в Москве состоится ИТ-конференция Импульс Т1. Если вы еще не зарегистрировались, сейчас самое время это сделать.
В программе — 5 направлений, 70+ практических активностей и более 2 000 активных участников ИТ-сообщества.
В этом году можно будет отрабатывать знания на практике сразу после докладов:
🔘 на код-ретрите — практиковаться в парном программировании и TDD
🔘 в ресурсных играх — решать командные задачи в условиях ограничений
🔘 в зоне Арх каты — искать слабые места в архитектурных решениях
🔘 на стенде доступности — изучать цифровые сервисы с точки зрения пользователей с ОВЗ
Приходите, чтобы отточить ИТ-мастерство, получить прикладные инструменты, обсудить рабочие задачи с коллегами и обменяться опытом с ведущими инженерами отрасли.
📆 19 ноября 2026 года
📍 Москва, ул. Волочаевская, д. 48, стр. 1, ДК завода «Серп и молот» (LOFT#8)
До встречи — одна неделя. Успейте зарегистрироваться.
О рекламодателе
19 ноября в Москве состоится ИТ-конференция Импульс Т1. Если вы еще не зарегистрировались, сейчас самое время это сделать.
В программе — 5 направлений, 70+ практических активностей и более 2 000 активных участников ИТ-сообщества.
В этом году можно будет отрабатывать знания на практике сразу после докладов:
Приходите, чтобы отточить ИТ-мастерство, получить прикладные инструменты, обсудить рабочие задачи с коллегами и обменяться опытом с ведущими инженерами отрасли.
До встречи — одна неделя. Успейте зарегистрироваться.
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
Раздел удалён, логический диск пропал, структура LVM повреждена. С чего начать восстановление и как не усугубить ситуацию первыми действиями? В такой момент важно понимать, какие метаданные пострадали и как устроено хранение данных.
19 ноября в 20:00 на открытом уроке курса «Инфраструктура высоконагруженных систем» разберёте восстановление MBR, GPT и LVM после критических сбоев.
Рассмотрите, как операционная система видит разделы и что происходит при их удалении. Сравните устройство MBR и GPT, разберёте принципы организации физических томов, групп томов и логических томов LVM.
Практическая часть посвящена аварийным ситуациям — случайному удалению разделов и повреждению структур LVM. Познакомитесь с консольными утилитами gdisk и vgcfgrestore и их применением для восстановления структуры разделов и LVM.
Отдельно разберёте признаки повреждения и порядок первоочередных действий при потере логических дисков. Это поможет осмысленно подходить к восстановлению и понимать, какие действия могут осложнить дальнейшую работу с данными.
Урок будет полезен системным администраторам, DevOps- и SRE-инженерам, которые работают с физическими серверами и виртуальной инфраструктурой.
Урок проведёт Андрей Буранов.
Зарегистрироваться: https://two.su/1xao6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
19 ноября в 20:00 на открытом уроке курса «Инфраструктура высоконагруженных систем» разберёте восстановление MBR, GPT и LVM после критических сбоев.
Рассмотрите, как операционная система видит разделы и что происходит при их удалении. Сравните устройство MBR и GPT, разберёте принципы организации физических томов, групп томов и логических томов LVM.
Практическая часть посвящена аварийным ситуациям — случайному удалению разделов и повреждению структур LVM. Познакомитесь с консольными утилитами gdisk и vgcfgrestore и их применением для восстановления структуры разделов и LVM.
Отдельно разберёте признаки повреждения и порядок первоочередных действий при потере логических дисков. Это поможет осмысленно подходить к восстановлению и понимать, какие действия могут осложнить дальнейшую работу с данными.
Урок будет полезен системным администраторам, DevOps- и SRE-инженерам, которые работают с физическими серверами и виртуальной инфраструктурой.
Урок проведёт Андрей Буранов.
Зарегистрироваться: https://two.su/1xao6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
мде, зашел тут на досуге в графану посмотреть, вот так вот и живем
🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
—
Please open Telegram to view this post
VIEW IN TELEGRAM