Bash Days | Linux | DevOps
23.6K subscribers
226 photos
27 videos
781 links
Авторский блог от действующего девопса

Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, пополнил баланс через хуй-пизда-копыто и вот они финальные метры до финиша… Хуй там плавал.

Эта залупа требует верификацию по номеру телефона, естественно РФ номера не подходят. Почесал я репу, поплакал, но нюни не стал распускать. Мыж инженеры, надо искать способы решить этот внезапный квест.

Покупка одноразового номера не подходила, велика вероятность что эта шляпа через день запросит новое подтверждение. А покупать уже активированный аккаунт я тоже в рот ебал, не люблю я такое. Мне нужно чтобы это было мое и очень желательно — бесплатно.

Всякие eSIM я тоже ебал, сегодня она работает, а завтра превращается в тыкву.

Ну и остался самый очевидный вариант — сгонять заграницу на выходные и разжиться симкой загнивающего запада.

Но зачем мне всё это? Я не стал выбирать жизнь, я выбрал кое-что другое. Почему? Да ни почему. Какие могут быть «почему», когда есть hero_in.


^^^ цитата из книги Ирвина Уэлша (Trainspotting), специальные средства осуждаю, чисто для словца…

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

Иностранными симками банчат прям на озоне, прикинув хрен к заднице я заказал себе KZ Activ (артикул не даю, сам легко найдешь), за 500-600 рублей, доставка 2 дня. Перед заказом я прекрасно понимал, что покупаю кота мешке. Негативные отзывы все же пишут криворукие обезьяны.

Но кот в мешке оказался живым, единственный нюанс это нужен загранник, все регается на него. Да, регистрация займет 2 дня, после того как вставил симку в телефон, нужно выждать сутки и после первой реги еще сутки. Потом симка успешно заводится и работает в роуминге без абонентской платы.

Красота, хули. После всех этих телодвижений можно регать нужные сервисы, смс приходят отовсюду и успешно проходят любые верификации.

Теперь со мной часть KZ, ну ты понял, заебал!

🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
177
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Архивирование и хранение. Часть 2/4.

Всем привет, с вами снова 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


Продолжение следует...

🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
24
This media is not supported in your browser
VIEW IN TELEGRAM
🧡 Группа Rubytech участвует в рейтинге работодателей России от hh.ru!

Мы создаем программно-аппаратные комплексы под брендом Скала^р, проектируем уникальные инфраструктуры и сервисы для высоконагруженных систем и формируем профессиональную среду для тех, кто развивает цифровую инфраструктуру страны.

❗️В прошлом году Группа Rubytech заняла 14-е место среди 31 ИТ-компании с численностью от 1 000 до 5 000 сотрудников. В этом году хотим подняться ещё выше!

До 14 ноября проходит голосование соискателей, и нам очень пригодится ваша поддержка.

Чтобы проголосовать, нужно:
1️⃣ Перейти по ссылке и авторизоваться на hh.ru.
2️⃣ Найти Группу Rubytech через поиск или в категории «Технологии и цифровые решения» → «ИТ-компании».
3️⃣ Нажать на сердечко рядом с названием компании.

Готово! Спасибо за поддержку 🧡

А если вы хотите узнать больше о наших технологиях и подходах, заглядывайте в блог Группы Rubytech на Хабре.

Реклама. ООО «Рубитех», ИНН 7702404085, erid: 9RCQq4g6SY6boowKw6RB4XSdzqe3x42k2dVykBjEBKzN9tiwvbrp7DV78
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Ну вот и началось… это прекрасно!

🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
58
Реанимируем зомбоящик

Я тут имбу тебе принес, щас расскажу. Короче предыстория, есть у меня телевизор на кухне под названием — Хуёмоё. Первый год эта залупа работала вменяемо, ну а потом начались приколы, толи оно обновилось, толи еще чего.

Короче эта хрень просто висела и пылилась, покупать новый тивилизор я в рот ебал, а официальной и облегченной прошивки не существовало, да и девайс уже снят с поддержки.

На днях мне попалась репка Cleanyourtv и это стало спасением. С помощью нее можно практически любой телек реанимировать, оно зачищает вообще всё внутри и оставляет только то, что тебе нужно.

Я оставил только SmartTube, Jellyfin, Wink, Kinopub, Vlc ну и там какие-то еще сервисные штуки которые мне нужны.

Теперь мой телевизор не просто летает, он блядь чемпион мира по скорости. Выпилилось абсолютно всё лишнее, весь нахуй гугол в поймоку. А по итогу получил даже новую морду.

Самое главное на телеке включить режим разработчика и активировать отладку по усб, ну и к вифи подключить. А дальше я просто пи-агенту скинул ссылку на репу и сказал, что я хочу, ну и спустя 10 минут я получил результат.

Да, наверное можно было руками все проделать, но чёт я и это в рот ебал, потому, что не был уверен что получится и убивать на это полдня совсем не хотелось.

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

Изучай, мож тоже реанимируешь свой зомбоящик.

🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
53
Архивирование и хранение. Часть 3/4.

Всем привет, с вами 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)*2

3. Максимальный размер защищаемого файла <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


🛠 #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
20
Раздел удалён, логический диск пропал, структура LVM повреждена. С чего начать восстановление и как не усугубить ситуацию первыми действиями? В такой момент важно понимать, какие метаданные пострадали и как устроено хранение данных.

19 ноября в 20:00 на открытом уроке курса «Инфраструктура высоконагруженных систем» разберёте восстановление MBR, GPT и LVM после критических сбоев.

Рассмотрите, как операционная система видит разделы и что происходит при их удалении. Сравните устройство MBR и GPT, разберёте принципы организации физических томов, групп томов и логических томов LVM.

Практическая часть посвящена аварийным ситуациям — случайному удалению разделов и повреждению структур LVM. Познакомитесь с консольными утилитами gdisk и vgcfgrestore и их применением для восстановления структуры разделов и LVM.

Отдельно разберёте признаки повреждения и порядок первоочередных действий при потере логических дисков. Это поможет осмысленно подходить к восстановлению и понимать, какие действия могут осложнить дальнейшую работу с данными.

Урок будет полезен системным администраторам, DevOps- и SRE-инженерам, которые работают с физическими серверами и виртуальной инфраструктурой.

Урок проведёт Андрей Буранов.

Зарегистрироваться: https://two.su/1xao6

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
4
мде, зашел тут на досуге в графану посмотреть, вот так вот и живем

🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
46