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

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

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

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
Как обычно люди используют screen:

screen
cd /usr/local/sbin
./db_import.sh


И потом закрывают терминал, а скрипт db_import.sh продолжает где-то там шуршать и делать свои делишки.

Потом возвращаются спустя время и делают:

screen -list

3393.pts-3.dev (Attached)

screen -x 3393.pts-3.dev

или

screen -r 3393.pts-3.dev


Убеждаются что скрипт завершил свою работу, ну и выходят, порой даже не закрывая screen сессию (3393.pts-3.dev).

Чем отличается -r и -x

-r (resume) = подключаемся к сессии которая в данный момент отсоединена, то есть к ней не подключены другие юзеры.

-x (multi-user mode) = подключаемся к сессии к которой уже кто-то подключен, то есть несколько пользователей могут мешать друг другу в рамках одной сессии.


Подход нормальный, никаких тебе ключей запоминать не нужно и т.п.

Но есть такой вариант:

screen -dmS имя_сессии bash /путь/к/скрипту.sh


dmS это параметры для запуска screen в фоновом режиме (detached mode) с именем сессии.

d = запускает сессию в отключенном (detached) режиме.

m = создаёт новую сессию, даже если она существует.

S = имя сессии


Команда выше создаст сессию screen и запустить скрипт в фоновом режиме. А самое главное отпустит терминал и ты сможешь дальше в нём работать.

И самая киллер-фича — после отработки скрипта, screen сессия автоматически закроется и после выполнения команды: screen -list список будет пуст.

Еще можно так:

screen -X -S "script0$scriptID" stuff "^C"


script0$scriptID = указывает на сессию с именем, здесь $scriptID это переменная, содержащая идентификатор или значение, которое будет подставлено в команду.

stuff = передаёт текст или последовательность символов в сессию screen, как если бы их ввел пользователь.


На закуску.

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

Я раньше просто закрывал окно с терминалом и сейчас вижу что много кто так делает.

Все просто, прожимаем CTRL+A и затем «d». Ты отключаешься от сессии, переходишь в интерактивный режим с терминалом, а скрипт продолжает шуршать в фоне.

А как посмотреть выхлоп скрипта если сессия закрыта?

Добавь в свой скрипт логирование и обработку экспешенов, пусть оно в файлик пишет результаты своей работы. Нахуй тебе через screen потом ебаться все это просматривать.

Буквально вчера увидел как инженер с утра запустил распаковку базы на сервере, через пару часов у него мигнул интернет, ssh сессия с сервером превратилась в тыкву! Начинайте сначала!

Если запускаешь на сервере что-то очень долгое и не хочешь быть к этому привязан, используй screen! Это мастхев для подобных процедур. По крайней мере сохранишь время и нервы
.

Вот и вся наука. Изучай!

tags: #linux #utilites #bash

🔔 @bashdays➡️ @gitgate
Please open Telegram to view this post
VIEW IN TELEGRAM
73
Вот те очередная пепяка, которую я обнаружил в bash скрипте у коллеги. Сначала не понял, а потом как понял.

Называется — aria2.

Короче это консольная мильти-кончалка, поддерживает протоколы HTTP(S), FTP, SFTP, BitTorrent и Metalink. Реализована многопоточность и работает с чанками.

Видал да!

Авторы софтины обещают x10 к скорости скачивания даже если у тебя интернет работает как гавно и теряются пакеты.

Ну хуй знает, у меня и так интернет быстрый, попробую потом на 3g потестить.


Можно алиас сделать типа:


alias wget="aria2 -x 10 $1"


И заменить вегетину на эту вертихвостку c 10тью потоками.

Помимо скачивания, с помощью ключей можно чёрта накрутить, всякое сжатие, проксирование и т.п.

Больше инфы тут:

➡️ Официальный сайт
➡️ Репка на гитхабе

Потыкай, с виду штука годная, почти 40к звезд на гитхабе.

tags: #utilites #linux

🔔 @bashdays➡️ @gitgate
Please open Telegram to view this post
VIEW IN TELEGRAM
64
Привет, один из наших подписчиков попросил анонсировать его пепяку. Она уже пролетала в gitgate, но ничего страшного, пусть и тут полежит. Тем более штука маст-хэвная.

TENV Ёпта!

Если кратко, TENV это консольный менеджер для управления версиями Terraform, Terragrunt, OpenTofu, Atmos.

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

Ты скажешь — блядь, да есть же например tfenv и asdf, зачем очередной велосипед?

Во-первых, автора TENV зовут Александр, а не «Аннадурай Сатьямурти Чидамбарампиллаи». А это уже о чем-то говорит!

Ну и, во-вторых, все эти утилиты не поддерживают OpenTofu, Terragrunt и т.п. К тому же, требуют много консольных костылей/зависимостей и хуёва работают НЕ на Linux.

asdf не поддерживает автоматическое переключение версий на базе спецификации версии Terraform / OpenTofu внутри проекта с помощью HCL файлов. В целом, asdf скорее переключалка по запросу, а tenv более заточен под OpenTofu/Terraform проекты.


Установка:

LATEST_VERSION=$(curl --silent https://api.github.com/repos/tofuutils/tenv/releases/latest | jq -r .tag_name)
curl -O -L "https://github.com/tofuutils/tenv/releases/latest/download/tenv_${LATEST_VERSION}_amd64.deb"
sudo dpkg -i "tenv_${LATEST_VERSION}_amd64.deb"


Сейчас лично потыкал, всё работает как часики. После установки запускаем tenv, выбираем из списка (стрелочками и на пробел) что установить и жмем ENTER.

НО, так как хашикорпы — письки (This content is not currently available in your region), в РФ надо трафик прогнать через одно место, чтобы вытащить бинари терраформа.

Вот тут я бы пожелал автору добавить киллер-фичу, сделать чтобы tenv обращался к таким заблокированным серверам не самостоятельно, а например через какую-то прокладку. Тогда сука цены бы не было!

Александр, добавь для нас такую возможность, буду прям лично твоей штукой пользоваться, достаточно удобно!


В общем рекомендую потыкать и поддержать проект звездами. Годнота!

➡️ Страница проекта и документация

tags: #utilites #devops

🔔 @bashdays➡️ @gitgate
Please open Telegram to view this post
VIEW IN TELEGRAM
62
Давно хотел попробовать эту штуку и попробовал. Штука называется iVentoy.

iVentoy это PXE сервер. Если уж совсем простым языком, то это сервер который раздаёт исошники.

Чтобы установить операционку тебе не нужна никакая флешка и т.п.

Выставляешь в биосе сетевую загрузку и устанавливаешь на выбор любой дистрибутив.

iVentoy
из коробки дружит и с легаси биосом и с efi, так что хуёвина универсальная. Можно поднимать сервер и по Linux и под Windows.

iVentoy is an enhanced version of the PXE server. With iVentoy you can boot and install OS on multiple machines at the same time through the network.

iVentoy is extremely easy to use, without complicated configuration, just put the ISO file in the specified location and select PXE boot in the client machine.

iVentoy supports x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI and ARM64 UEFI mode at the same time.

iVentoy support 110+ common types of OS (Windows/WinPE/Linux/VMware)


Тыкаем палкой:

wget https://github.com/ventoy/PXE/releases/download/v1.0.20/iventoy-1.0.20-linux-free.tar.gz
tar -xzf iventoy-1.0.20-linux-free.tar.gz
mv iventoy-1.0.20 /opt/iventoy
cd /opt/iventoy


Теперь закидываем любые iso образы в папку /opt/iventoy/iso.

Я закинул ubuntu server и selectos для теста.

Запускаем:

./iventoy.sh start


После этого можно зайти на морду и посмотреть более детально, крутится эта штука на 26000 порту. Меня пустило так:

http://192.168.10.32:26000


Внутри можно поднастроить TFTP сервер, увидеть исошники, поменять разрешения экранов и менюшек, прописать белые списки мак адресов ну и т.п. Сам потыкаешь, всё интуитивно понятно.

Да, важно не забыть в вебморде справа нажать зеленую стрелку, это запустит PXE сервер.


Проверяем.

Поднимаю новую машину в виртулбоксе c EFI, выставляю загрузку по сети и вижу ожидаемый результат. У меня доступно два дистрибутива ubuntu и selectos. Отлично!

Выбираем нужный дистрибутив и запускаем установку по сети.

Что понравилосьiVentoy ставится элементарно, без хуйни и заморочек. Буквально пару минут и у тебя готовый PXE, запускай и накатывай операционки без флешек и внешних винтов.

Да, чтобы оно автоматом стартавало, можно закинуть какой-нибудь такой юнит.

[Unit]
Description=iVentoy PXE Server
After=network.target

[Service]
Type=forking
ExecStart=/opt/iventoy/iventoy.sh start
ExecStop=/opt/iventoy/iventoy.sh stop
Restart=on-failure

[Install]
WantedBy=multi-user.target


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

Ладно, бери на вооружение, глядишь пригодится.

🛠 #linux #pxe #utilites

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4110
Отдыхаешь? А как тебе такое? Если пропиздоглазил, то смотри на зеленый замочек и домен.

Короче — я сгенерил валидный SSL сертификат для домена localhost.

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

Называется mkcert. Работает на всём, Винда, Линукс и Мак. В случае с виндой установка осуществляется через менеджеры пакетов scoop или chocolatey.

Чтобы установить scoop в powershell нужно забить:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
irm get.scoop.sh | iex


И заинсталлить mkcert

scoop bucket add extras
scoop install mkcert
mkcert -install


Получаем такое:

Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
Note: Firefox support is not available on your platform. ℹ️


Всё! Теперь у нас есть свой доверенный центр сертификации.

Выпускаем первый SSL сертификат.

Ебли с этим никакой нет, запускаем:

mkcert bashdays.kek "*.bashdays.kek"


То есть просто перечисляем список доменов.

В ответ получаем:

Created a new certificate valid for the following names 📜
- "bashdays.kek"
- "*.bashdays.kek"

Reminder: X.509 wildcards only go one level deep, so this won't match a.b.bashdays.kek ℹ️

The certificate is at "./bashdays.kek+1.pem" and the key at "./bashdays.kek+1-key.pem"

It will expire on 2 August 2027 🗓


В результате получаем bashdays.kek+1.pem — сертификат и bashdays.kek+1-key.pem - приватный ключ.

Ну а дальше пихаем их в жопы в нужное место и наслаждаемся зеленым замочком.

Если серты и ключи тебе нужно генерить в определенном месте, можешь это указать так:

mkcert -cert-file=/ssl/fullchain.crt -key-file=/ssl/private.key bashdays.kek


Это полезно если у тебя какая-то автоматизация или баш скрипт, который автоматом будет это всё генерить, а nginx или angie это подхавывать.

Чтобы этой хуйнёй воспользоваться на WSL, делаем так:

sudo apt install libnss3-tools
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert


Здесь мы не выполняем инициализацию mkcert -install, на WSL мы только генерим SSL сертификаты.

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

Идем на виндовую машину и выполняем:

mkcert -CAROOT


В ответ получаем путь до корневого сертификата, у меня такой:

C:\Users\user\AppData\Local\mkcert

Возвращаем в WSL и выполняем:

echo "export CAROOT=/mnt/c/Users/user/AppData/Local/mkcert" >> ~/.bashrc


Если у тебя zsh, сам разберешься.

Теперь можно выпускать SSL сертификаты в WSL и в винде они будут считаться доверенными.

Если у тебя не винда, а мак или линукс, похуй, все делается аналогично, в официальной документации эти кейсы все подробно расписаны.

Что прикольно, такие серты живут по два года. При желании их можно прикрутить к своему локальному proxmox или еще куданить. Тут уже сам разберешься.

mkcert давнишняя штука, но как оказалось про неё мало кто знает, я про нее слышал года 4 назад, но успешно забыл. И вот только сегодня нашел в своих bash скриптах интеграцию с ней.


Для локальных целей прям маст-хев! Забирай на вооружение.

🛠 #ssl #utilites

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
5106
С праздником друзья!

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

И поможет нам в этом Mechvibes.

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


Установка

Тут всё просто, идем сюда и устанавливаем бинарник под свою операционку.

Поддерживается Linux, Windows, Mac.


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

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

Я себе котиков навтыкал, пишу этот пост и у меня всё мяукает и тыгыдыкает.

Ну а кто-то томные стоны аниме-девочек (Ahegao) прогружает, чисто поугарать.

Отдельные паки можно затестить прям на сайте и качнуть тут.

Мож кому зайдет, забирай в копилку.

🛠 #hardware #utilites

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
49
На каждую жопу с резьбой, найдется хуй с винтом!

Очередной вопрос — не хочу графану, не хочу всю эту ебаторию, а как мониторить то сайтик?

Да блядь всё просто — Uptime Kuma!

У самого стоит как с похмелья, да и у клиентов тоже нефритовый стояк.

Идеальное решение как самостоятельное, так и дополнительная приблуда к основному мониторингу.

Там есть практически всё, чтобы понимать что тебе песда!

У меня в основном триггеры на статусы стоят, поиск слов, ответы апихи.

Аааа.. еще и срок жизни ssl сертов отслеживает, тут прям заебись.

Ну и из приятного — пингует тебя в телегу, не заябывает, а по делу!


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

Вот те докерфайл

version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
ports:
- 3001:3001
volumes:
- uptime-kuma:/app/data
volumes:
uptime-kuma: null


Ну и ссылка на гитхаб

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

Краба тебе, завтра еще увидимся!

🛠 #utilites

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
14133
Тошнит от избыточности Portainer?

Ну дак вот, есть пиздатая легковесная альтернатива под названием dockge.

Визуально она очень похожа на Uptime Kuma, без хуйни и перегруженных интерфейсов.

Суть простая: скармливаешь туда свой docker-compose, нажимаешь — запустить, а дальше оно само всё сделает.

Удобное редактирование, обновление, поддержка .env, визуализация логов, подключение через shell к контейнерам и т.п.


В общем всё что нужно для быстрого развертывания.

Сам лично переехал на эту штуку в домашней лаборатории. И пока доволен. Вот те готовый ямлик для запуска dockge.

services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
- DOCKGE_ENABLE_CONSOLE=true


➡️ Репка на гитхабе
➡️ Посмотреть видео работы

Забирай в копилку! Ну и с пятницей!

🛠 #utilites #docker

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
682
Всем UpSnap!

Короче очередная пиздатая утилита с мордой, которая позволяет управлять твоим зоопарком в рамках Wake on Lan.

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

Ну такое себе. Поэтому на этих серваках я включил Wake on Lan и через UpSnap управляю их включением. А самое главное — теперь не поднимаю жопу.

Что нам предлагают?

Да собственно ничего лишнего, морда, мышка, клик и всё включено.

Можно конечно через консольку всё это дело админить, но через морду как-то интереснее что-ли, эстетичнее, да и нагляднее. Не тупо мак адрес лицезришь, а видно что-где-когда.

Минимальный композ для запуска, порт 8090 (не указан, так как конейнер работает в режиме: host)

services:
upsnap:
container_name: upsnap
image: ghcr.io/seriousm4x/upsnap:latest
restart: unless-stopped
network_mode: host
volumes:
- ./data:/app/pb_data
environment:
- TZ=Europe/Vienna


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

🛠 #utilites #networks

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
48
Всем привет. Опять решил поделиться опытом своих провалов.

🔤🔤🔥🔤🔤🔤🔤

Вобщем, как-то раз я решил написать самоучитель по bash.

По традиции все учебники либо в html, либо в pdf. Я решил остановиться на pdf. Я начал писать в libreoffice, там есть экспорт в pdf. Пока писал - познакомился с markdown. И вдруг подумалось, markdown - такой классный, напрямик можно в гитхаб запихнуть. И в pdf конвертнуть с помощью pandoc можно. Вобщем, решил верстать в markdown.

Для начала познакомился с редакторами, которые умеют подсвечивать markdown (pluma, mousepad, geany) Вобщем, жить можно, но подсвечивается не всё.

После этого попробовал Apostrophe. Он уже умеет дополнительно показывать результат. Но работает медленно. Особенно на больших документах.

В общем - перепопробовал, - не нравится. Решил писать в mousepad, а потом конвертить с помощью pandoc.

Написал скрипт для удобства пользования - меняется дата файла - автоматом резервная копия версии и конвертация в фоне.

Начал работать и тут вскрылась куча недостатков markdown;

1. Нет нормального форматирования (заголовок нельзя центрировать)
2. Нет нормальных таблиц, один ущерб какой-то.
3. Проблема с кирилицей (решаемая), но с помощью дополнительного tex-файла настроек.
\usepackage{longtable}\setlength{\LTleft}{2em}
\setmainfont{Liberation Serif}
\setsansfont{Liberation Sans}
\setmonofont{Liberation Mono}
\newfontfamily\cyrillicfont{Liberation Sans}
\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text}
\usepackage{polyglossia}
\setmainlanguage{russian}
\setotherlanguage{english}

4. Нет возможности печатать некоторые символы UTF.
5. некоторые символы приходится маскировать, чтобы они не понимались, как управляющие.

Единственный плюс - подсветка синтаксиса bash.

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

Может и не все получилось, сами знаете - первый блин комом.

Замечания и комментарии приветствуются.

С результатом можно ознакомиться здесь 👇

🅰️🅰️
➡️ https://github.com/tagd-tagd/self-instruction
🅰️🅰️

🛠 #bash #linux #utilites #markdown

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
395
This media is not supported in your browser
VIEW IN TELEGRAM
Порой заёбываешь подбирать свободный домен для собственных нужд, но на любую хотелку уже есть утилита.

Сегодня тыкаем domain-check. Как раз вышла новая версия v0.6.0. Проект молодой, но достаточно перспективный, а самое главное с отрытым исходным кодом.

Установка простая:

curl https://sh.rustup.rs -sSf | sh
. "$HOME/.cargo/env"
cargo install domain-check


Либо качаем отсюда бинарник под свою ОС.

Запускаем проверку доменов:

domain-check linuxfactory -t ru,com,io,dev


Опа, опа, нихуя се!

linuxfactory.dev AVAILABLE
linuxfactory.ru TAKEN
linuxfactory.com TAKEN
linuxfactory.io AVAILABLE

Summary: 2 available, 2 taken, 0 unknown (processed in 0.9s)


Выбираем свободный и по желанию регаем. У domain-check дохера ключей и методов подбора/проверки.

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

Расписывать не буду, если интересно можешь сам сюда зайти и повтыкать.

🛠 #utilites

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
52
Как-то давненько пришлось мне отлаживать большущую APIху, но под рукой была только консолька. Ни о каком GUI и речь не шла. А пулять запросы через curl я заебался.

Тем более хотелось что-то организованное и визуально приятное.

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

Выбор пал на Posting. Это TUI клиент со всем необходимым функционалом.

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

Ставится элементарно:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --python 3.13 posting


uv — это современный инструмент для Python, который объединяет в себе функционал менеджера пакетов и виртуальных окружений, задумывается как замена pip + venv/virtualenv + pip-tools.


Для хакерменов прям мастхев. Забирай в копилку, годнота!

🛠 #linux #utilites

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
65
Сколько линуксоида не корми, он все равно на винду поглядывает.

Накопал я тут тебе WinBoat.

Эта штука запускает Windows-приложения прямо в Linux с максимально «нативной» интеграцией: окна приложений — как обычные X/Wayland-окна, общий доступ к файлам и даже полноценный Windows-десктоп.

Что в коробке

- Запустит любое приложение, которое работает в Windows — в том числе коммерческие программы.

Ради прикола запустил Excel, ну что сказать, минимум приседаний и танцев с бубном. Работает прям отлично.

- Окна приложений интегрируются в рабочий стол Linux, не просто RDP в едином окне, а RemoteApp-композитинг.

- Автоматические инсталляции через GUI — выбираешь параметры, остальное делает WinBoat.

- Файловая интеграция, домашний каталог монтируется в винду.

- Полный Windows-десктоп по запросу (если нужно работать внутри полноценной виртуальной машины).

Что под капотом

Это Electron-приложение + сопутствующий «guest server». Windows запускается как VM внутри контейнера Docker. А между хостом и гостем общаются через WinBoat Guest Server.

Затем для прорисовки отдельных окон используется FreeRDP + Windows RemoteApp — это и даёт ложное ощущение нативности.

Штука интересная возможно бы я ее использовал, если бы плотно сидел на линуксе.

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

🛠 #утилиты #utilites #linux

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
74
Имба — Mail Archiver.

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

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

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

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

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

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


🛠 #utilites #backup

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
376
У меня 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
1164
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.

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


🛠 #utilites #tools #selfhosting

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