Bash Days | Linux | DevOps
23.3K subscribers
152 photos
26 videos
664 links
Авторский канал от действующего девопса

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

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

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
Fedora Post Install

Набрёл тут на Bash поделку CRIMS0NH4T.

В двух словах — делает за тебя необходимую рутину после чистой установки Fedora.

— Настройка DNF
— Установка RMP Fusion
— Установка кодеков
— GPU драйвера (Intel, Nvidia, AMD)
— Тюнинг производительности
— Оптимизация Gnome

Как я понял, версия прям ранняя альфа-альфа и активно допиливается автором.

Я бы минимально запатчил так:

- set -u
+ set -euo pipefail
+ IFS=$'\n\t'

- readonly LOG_FILE="/tmp/crimsonhat_$(date +%Y%m%d_%H%M%S).log"
+ LOG_FILE="$(mktemp /tmp/crimsonhat.XXXXXX.log)"
+ readonly LOG_FILE

- run_with_progress() { local message="$1" shift log INFO "$message" if "$@" >/dev/null 2>&1; then return 0 else return 1 fi }
+ run_with_progress() {
+ local message="$1"; shift
+ log INFO "$message"
+ if "$@" >>"$LOG_FILE" 2>&1; then
+ return 0
+ else
+ return 1
+ fi
+}

- disk_type=$(lsblk -d -o name,rota | awk 'NR==2 {print $2}')
- primary_disk=$(lsblk -d -o name,rota | awk 'NR==2 {print $1}')
+ read -r primary_disk disk_type < <(lsblk -dn -o NAME,ROTA | head -n1)
...
- current_scheduler=$(cmd < "$scheduler_path" 2>/dev/null | grep -o '\[.*\]' | tr -d '[]')
+ current_scheduler=$(tr -d '\n' < "$scheduler_path" | sed -n 's/.*\[\(.*\)\].*/\1/p')


Хотя set -euo pipefail тут конечно спорный вариант, можно наступить на грабли.

pipefail заставляет конвейер возвращать ошибку, если любая команда в скрипте упала. Так что применив set -u автор обезопасил себя от неочевидных багов.


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

🛠 #linux #tweaks

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
523
Сегодня поделюсь историей, которая началась плохо, но закончилась хорошо.

🔤🔤🔤🔤🔤🔤🔤

В общем, у меня домашний шлюз - mini PC на debian. А поскольку мощность для шлюза избыточна, приходится использовать ее не по прямому назначению.

Поставил туда transmission-daemon, и рулю в консоли через transmission-remote.

Сами понимаете, что каждый раз в консоли набирать transmission-remote да еще с ключами — кнопки сотрутся, поэтому пользуюсь алиасами.

И вот сегодня я накосячил с алиасом настолько знатно, что bash упал и я покинул чат. И после этого не смог подключиться по ssh.

Если бы я правил sshd_config, я бы, конечно, подключился двумя сессиями, и все восстановил. Кто ж знал, что правка .bashrc тоже опасна.

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

1. Выполнить ssh user@host -t /bin/sh

Вместо /bin/sh можно указать любую оболочку (их примерный список можно глянуть в /etc/shells). Понятно, что оболочка должна быть установлена на удаленной машине.

2. Подключиться по sftp, скачать .bashrc, локально отредактировать и залить обратно.

В общем, все сработало нормально. Алиас исправил. Все работает.

А подключился бы, как положено, при правке важных файлов двумя ssh-сессиями. И не было бы этой статьи.

Кстати, использование именно первого пункта позволяет обходить тривиальные защиты ssh (типа скриптовой двухфакторной аутентификации или использование sleepshell для пользователя, которому только разрешен проброс портов), основанные на простой замене оболочки пользователя в /etc/passwd.

При выполнении скрипта, хакер уже аутентифицирован в системе, и может просто заменить оболочку.

🛠 #linux #ssh #fix

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
549
Вот не пойму, это оно мне жопу нарисовала или сиськи? Радоваться или плакать? Но похоже больше на жопу...

🛠 #рабочиебудни #мониторинг

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
1251
В сентябре Selectel запустил OpenFix – программу для тех, кто хочет делать open source безопаснее, чище и надежнее. Там пул задач по рефакторингу на Rust, пакетизацию приложений, исправление багов с оплатой от 30 000 до 350 000 ₽.

При этом – ПО распространяется по пермиссивной лицензии, мейнтейнером остается автор, а код — в свободном доступе.

Проект получился живым и крутым – команда получила много заявок, более 8 больших задач уже в работе.

Весь движ – на странице проекта. Следите за тем, как идет работа над задачами, делитесь своим мнением и ждите дроп новых активностей!

Реклама, АО «Селектел», erid: 2VtzqwEKGLE
14
Имба — Mail Archiver.

В двух словах: Агрегатор и бекапер всех твоих почтовых ящиков с удобным поиском.

Ставишь как self-hosted, добавляешь любые учетки по IMAP (+ M365) и вся твоя почта бекапится на локальный NAS или S3.

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

Например, можно перелить почту из одного сервиса в другой в пару кликов. А главное — Бесплатно!

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

Можешь на ютубе глянуть, там обзорчики уже наснимали.


🛠 #utilites #backup

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
375
This media is not supported in your browser
VIEW IN TELEGRAM
Не придумывайте планы на субботу — Сбер уже всё организовал! 👌

25 октября встречаемся на IT Community Day в Санкт-Петербурге, чтобы обсудить влияние AI на IT-тренды и будущее разработки.

Выбирайте свой трек:

✔️ AI — от генерации кода до мультиагентных систем.
✔️ Java — архитектура, производительность, масштабирование.
✔️ QA+AI — новые подходы и практики разработки.
✔️ Soft skills — карьера и развитие инженера в эпоху AI.

Регистрируйтесь по ссылке, пока места ещё есть. До встречи 25 октября в 11:20 по адресу: ул. Уральская, д.1 (литера Ч)!
11
Хорошие девопсы копируют, великие — воруют

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

Под это дело, я завел отдельный телеграм канал. В котором мы с тобой создадим канал в Максе, раскрутим его с минимальными вложениями и выйдем на доход > 200к рублей в месяц.

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

План надежный, как швейцарские часы.


Все шаги буду подробно описывать, можешь повторять и глядишь сможешь выйти на пассивный доход.

😇🙂🙃😉😌😍🥰😘
😗😙😚😋😛😝😜🤪
🤨🧐🤓😎🤩🥳😏😒
😞😔😟😕🙁☹️😣😖
😫😩🥺😢😭😤😠😡

Кстати сегодня закинул пост про создание канала без наличия 10к подписчиков. Пока хак работает, так что не проебись.


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

Подписаться: Макс на Максимум
Please open Telegram to view this post
VIEW IN TELEGRAM
1224
Вчера сижу, проверяю домашки. Приходит СМС, мол Роман спасибо, что совершили покупку, с вашего бонусного счета списано 2450 рублей.

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

Но схуяли с меня списали баллы? Я там давно не был и ничего не покупал. Азарт взял своё.

Первым делом написал в саппорт, меня по шаблону послали нахуй. Окей… Ну раз так, значит найдем директора и позвоним ему.

Звонить не стал, чет зассал. Но написал в мессенджере. Описал ситуацию, скрины приложил.

На той стороне солидный мужчина (по аватарке) знатно охуел, но ответил — Принято, свяжусь с вами позже.

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

Охуительный план! Надежный!

Спустили на тормозах, поржали. Сотрудник был выкинут на улицу.

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

Человека банально уволили из-за автоматического СМС, которое прикрутил какой-то айтишник в рамках рутинного спринта.

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

Кстати потом следом пошел и еще одну компанию разъебал, давно хотел, тоже впарили услугу, но услугу не предоставили. Сегодня уже возврат упал на карточку.


Как говорится — с миру по нитке. Не давай себя в обиду 😲

🛠 #рабочиебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
9139
У меня Obsidian бекапится в git, естественно он торчит наружу жопой. Репа конечно же приватная, но чем черт не шутит.

Каких-то критичных данных я в заметках не храню, ну спиздят и спиздят, пусть читают как на bash программировать. Мне не жалко.

Но недавно понадобилось мне зашифровать некоторые заметки. Поизучал я различные варианты и остановился на плагине — Meld Encrypt.

Плагин ставится через морду Obsidian одной кнопкой, ничего настраивать из коробки не нужно.

Слева появляется иконка — New Encrypt Note, забиваешь туда пароль, подсказку. Создается исходный файл в формате mdenc, а не нативный markdown с расширением .md.

Внутри исходного файла json`чик вида:

{
"version": "2.0",
"hint": "My Hint",
"encodedData": "tH/epIAOSgeGQQtO7FTcM="
}


Что прикольно, ты можешь зашифровать не всю заметку, а только её часть либо критические данные в каком-нибудь пайплайне. Выделяешь эти данные и слева жмешь иконку — Ecrypt Selection.

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

Шифрованная часть внутри заметки выглядит так:

🔐β 💡My Hint💡ls92E5jV+HlAfZMML== 🔐


Короче полет нормальный. Хер знает насколько сильный там энкрипт, но от лишних глаз эта штука защищает.

В одном из issue в репе есть комментарий — «I have reviewed the code and noticed that it uses AES-GCM with a fixed IV and a password-derived key.»

Ну и по коду могу сказать что работает примерно так:

Пользователь задаёт пароль для шифрования.

Ключ генерится на основе пароля, скорее всего это PBKDF2.

Шифрование проходит по схеме AES-GCM. Шифр AES, режим Galois/Counter Mode с поддержкой аутентификации (В коде есть тэг MAC).

Не уверен, но возможно используется фиксированный IV инициализационный вектор.

Автор плагина походу сам не знает, что он написал. Поэтому подстраховался и добавил в ридми — «Use at Your Own Risk», мол идите нахуй, если вас подломят я тут не причем.

Присмотрись, штука довольно полезная. В хозяйстве сгодится.

🛠 #encrypt #obsidian #utilites

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
1163
Дожились блядь, схватил погремуху на LF. (скрином поделился: Антон Жданов) публикую с его разрешения и с разрешения участника диалога. Так что все блядь прозрачно и согласовано!

- Каждому лектору в жопу по вектору
- Лучше в жопу сунуть глобус чем у ЦУМА сеть в автобус
- Если ты не голубой нарисуй вагон другой


Новый бренд чтоль мутитиль - Сёледка под Шубой?

Ладно хули, рутина. Дела, люди всем двором на LF идут, устраивают челеджи, кто на какой задачке вперед сдохнет ))

Всех с пятницей, хороших тебе предстоящих выходных, ну и по классике — береги себя!

🛠 #рабочиебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
744
Олды могут помнить эту замечательную игруху, называлась она Star Trek, придумал и реализовал ее Майк Мэйфилд в 1971 году.

Короче некий энтузиаст запилил ее на чистом Bash и притащил в современный мир под названием Bash Trek.

Это пошаговая стратегия, да, прям в терминале.

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

Устанавливается просто:

cd /tmp
wget https://github.com/StarShovel/bash-trek/raw/main/bashtrek.sh
chmod +x bashtrek.sh
./bashtrek.sh


И погнали сводить скулы.

Как играть:

Нажми на цитату чтобы развернуть

— Галактика — это сетка 8×8 квадрантов, каждый квадрант — 8×8 позиций.

— При навигации тебе будет предложено направление (0-7 как «ферзь» в шахматах, восемь возможных направлений) и расстояние (количество шагов).

— Если есть препятствие (звезда, клингон, червоточина), то максимальная дистанция движения будет ограничена и интерфейс покажет это.

— Червоточины («wormholes») могут появляться в квадрантах, если ты войдешь в червоточину, тебя телепортирует в случайное место в галактики.

— При входе в квадрант с клингонами, они могут атаковать твой корабль. Щиты (SHI) защищают, но если они севшие — тебе пезда.

— У тебя есть база (starbase), если ты подлетишь к базе, торпеды, щиты и энергия восстанавливаются.

— Есть временные ограничения «stardate» (звёздная дата), до которой нужно уничтожить всех клингов, если не успеешь — тебе пезда.


Короче затягивает, протупил сегодня пару часов, ни разу так и не победил.

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

🛠 #games #игры

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
543
Как прокачать Minecraft сервер с помощью Angie

Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.

Сюда по классике не влезло, всё в блоге 👇

Читать: https://two.su/bieb4

🛠 #angie #devops #security

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
548
Бэкапы — как привидения. Все о них слышали, но никто их не видел.

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


Чтобы тебе не стать главным героем этой эпитафии, пройди тест и узнай, сумеешь ли ты защитить свою «инфраструктурную жопку».

Ну а мы с ребятами из Selectel собрали самые сочные «факапы», про черных-черных блекхетов, заколдованного тимлида-гномика, утечки документов и запятнанную репутацию компаний.

Участники историй поплатились за свою глупость, но мы знаем как это предотвратить и научим тебя.

В довесок каждый гарантировано получит бонусный промокод на 1 000 рублей, чтобы ты мог потыкать S3 в полевых условиях. Например, прикрутить S3 к своему домашнему Nexcloud или Truenas.


Пройти тест: https://slc.tl/0gt0w

Реклама, АО «Селектел», erid: 2VtzqwFboo5
14
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, Владивосток!

5 ноября вместе с экспертами из Сбера и Cloud․ru обсудим фундаментальные инженерные вопросы и главную технологическую тему — агентизацию 🔥

Агенты уже сейчас предвидят проблемы, принимают решения и работают как наши бессменные цифровые напарники — на OPS Meetup расскажем, как AI-агенты меняют привычные процессы и автоматизируют даже самые сложные сценарии.

➡️ AI SRE: AI Agent как напарник инженера — руководитель направления Cloud․ru Сергей Шапошников.
➡️ ML Predict в мониторинге — исполнительный директор ДИТ «Занять и Сберегать» в Сбере Павел Степуро.
➡️ Дашборды Grafana без боли: разбираем паттерны RED, USE, Four Golden Signals — DevOps-инженер Cloud․ru Антон Быстров.

📍Встречаемся 5 ноября в 18:00 в конференц-зале Lotte Hotel.

Регистрируйся по ссылке и агентизируй Дальний Восток вместе с нами 😎
9
This media is not supported in your browser
VIEW IN TELEGRAM
Ха! Сегодня будем тыкать палкой «Крокодила».

Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.

Работает по принципу «отправь, введи код, получи по ебалу».

Установка под всё:

curl https://getcroc.schollz.com | bash
brew install croc
scoop install croc
choco install croc
winget install schollz.croc


Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.

На Linux сервере запускаю:

cd /tmp && echo "Hello BashDays" >> bashdays.txt
croc send bashdays.txt


Получаем:

Sending 'bashdays.txt' (15 B)
Code is: 2811-spray-cabinet

On the other computer run:
(For Windows)
croc 2811-spray-cabinet
(For Linux/macOS)
CROC_SECRET="2811-spray-cabinet" croc


Так, идем на Windows машину и запускаем:

croc 2811-spray-cabinet


То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:

C:\Users\user>croc 2811-spray-cabinet
Accept 'bashdays.txt' (15 B)? (Y/n) Y

Receiving (<-92.52.131.227:10350)
bashdays.txt 100% |████████████████████| (15/15 B, 73 B/s)


А на Linux машине:

Sending (->92.52.131.227:9015)
bashdays.txt 100% |████████████████████| (15/15 B, 41 kB/s)


Вуаля! Проверяем файл на винде, всё прекрасно передалось!

«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.

Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.

Да, есть прикол, что при получении ты вводишь «секретный код» и он отпечатается в истории команд, это хуйня. Поэтому просто запускаем croc и оно в интерактиве запросит код, вводишь код и дело в шляпе. В историю команд ничего не попало.

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


Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.

На Andoid кстати тоже порт есть в F-Droid.


🛠 #utilites #tools #selfhosting

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
145