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
Ну вот и началось… это прекрасно!

🛠 #рабочиебудни
—
💬 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