Skurudo Blog(post)

Заметки и замечания, рассказы и пересказы

Уведомления о проблемах в Oxidized

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

Например есть довольно зрелый продукт для резервного копирования конфигурация — Oxidized. Разработка пришла на смену RANCID и заменила его чуть более чем полностью. В нем исторически есть набор фич, но развитие за годы замедлилось. Работает ведь отлично, зачем ломать? Но есть задачи немного в сторону.

В Oxidized нет возможности из коробки направить уведомлении об успешном или наоборот — не очень успешном процессе резервирования. Для этого можно использовать так называемые хуки. И вроде hook не слишком сложный, но важно помнить, что важен формат — yaml.

hooks:
  failed:
    type: exec
    events: [node_fail]
    cmd: 'echo "$OX_NODE_NAME,$OX_NODE_IP,$OX_JOB_STATUS" >> /home/oxidized/.config/oxidized/ox_node_failed.log'

На выходе мы получаем текстовый файл в формате csv и сможем еще уже отправить дальше. Например в телеграм путем не очень хитрых манипуляций:

#!/bin/bash

# Set the API token and chat ID - обозначаем токен и id чата
API_TOKEN="token"
CHAT_ID="chat-id"

# Parse file with error - объявляем путь к файлу
FILE=/opt/oxidized/ox_node_failed.log

# Checking if file is empty or not - проверяем, пустой ли файл
if [ -s $FILE ]
then
     echo "File is not empty, do the JOB"

       # Read file, prepare messade and send to Telegram - читаем файл, готовим сообщение и отправляем
        while IFS=, read -r col1 col2 col3
        do
            MESSAGE=("<b>ERROR DETECTED</b> while backup on device $col1 with IP: $col2 reason: <b>$col3</b>. Check <a href=\"http://oxidized.url\">Oxidized</a>!");
            echo $MESSAGE

        # Use the curl command to send the message - отправляем сообщение
        curl -s -X POST https://api.telegram.org/bot$API_TOKEN/sendMessage -d parse_mode="html" -d chat_id=$CHAT_ID -d text="$MESSAGE";

        done < $FILE
      
        # Clean file - очищаем файл, чтобы избежать повторной отправки
        >$FILE

else
     echo "File is empty, nothing to do"
     exit;
fi

Теперь и на Github! ^_^

Лагерь курильщиков

Подсмотрено на территории одного учебного заведения — натуральный лагерь для курильщиков:

Цифровые нужды в нужнике

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

Мне вспомнилось, что желание удовлетворять потребности не только физиологические, но и, так сказать, цифровые появилось даже не с момента появления смартфонов и планшетов. Еще во времена FIDO, когда интернет был модемным, желающие читать конференции вместе с фаянсовым другом находились. Практическая реализация подводила, но стойкое желание было. Future is now. Прогресс победил и теперь можно :)

Про обзывания серверов

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

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

Вишенка в торте и, к сожалению, не моя придумка, а Системного Архитектора — называл он серверы терминами из порно. Там было буквально все — cumshot, bigcocks, asshole, whore, blowjob, ebony... Начальство как-то не «дочухало» до названий, с английским, особенно со сленгом, в начале нулевых было не так, чтобы шибко хорошо. Сообщения друг другу и «алерты» вроде: «whore умерла, что-то не отзывается», «проблемы с камшотом», «восстановите бигкокс» — даже сейчас вызывают легкую улыбку :)

PsiTransfer & Filebrowser

Классных штучек пост... на просторах великого и могучего интернета нашлось две совершенно потрясающих по простоте и функционалу штучки — PsiTransfer и Filebrowser. Можно использовать по отдельности, можно вместе, а можно не использовать, но это не так интересно.

PsiTransfer [github]
Отличный и простой сервис для обмена файлами. Его конечно нельзя назвать полноценной заменой Nextcloud / Owncloud / Dropbox / YandexDisk / MailCloud и etc., но когда есть необходимость закачать какой-то файлик на какое-то время и сбросить ссылку — вещь просто идеальная. К тому же простая при всей своей скромности — ни аккаунтов, ни логинов. Причем все это не будет храниться вечно, крайний срок предусмотрен. Плюс скачивание можно закрыть произвольным паролем. Эта прелесть написана на nodejs и может жить в докере.

Filebrowser [github]
Как видно из названия — это проводник по файликам в веб интерфейсом, написанный на go. Т. е. выбирается каталог, запускается сервис и вуаля — файлы доступны через через браузер. Можно запустить в докере, можно как приложение, но самое вкусное — под операционной системой Windows. Само по себе это открывает просто таки гигантские возможности для использования. Приложение не сложное, но снабжено интересными элементами. Помимо админа можно создавать дополнительных пользователей и нарезать права. Возможно создать совсем порезанного пользователя с правами только для чтения и без возможности что-то еще сделать. Единственный минус, который обнаружился, — не сильно дружит с кириллицей, если нужно сослаться при старте на русскоязычную директорию. В самом браузере все работает ровно и четко, даже проигрывание файлов работает (субтитры правда не показывает с видео).

Как потратить немного времени и победить тревожность

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

Короче началось все с того, что любимый торрент трекер AnimeBytes снова по каким-то своим техническим проблемам слег и анонсов восстановления его не было. Пришлось какое-то продолжительное время использовать NyaaTorrents. Он менее удобен и проигрывает визуально, но прост и функционален. В момент использования стало понятно — есть проблема, которая касается и NyaaTorrents, и AnimeBytes. Для получения нужных нам материалов для проведения досуга нужно заходить, обновлять страничку, смотреть обновления, скачивать.

ДОКОЛЕ?! Автоматизацию в массы!

И вспомнилось мне, что еще со времен uTorrent была прекрасная возможность использовать RSS для получения о новых релизах и ссылки на сами торренты. Точно такая же фишка обнаружилась и в QBittorrent, идейном наследнике uTorrent. Таким образом мы делаем следующее — добавляем в наш торрент клиент RSS фид от торрент трекера и с помощью встроенных фильтров автоматически скачивает то, что нам нужно.

Вот так выглядит список правил для зимнего сезона 2024 года + остатки 2023-ого:

Сложности? Есть некоторые моменты, на которые стоит обратить внимание — разные названия в разных rss-фидах и релизах (нужно учесть варианты), а также имеет смысл фильтровать разрешения (т. е. скачивать релиз только 720р или только 1080р, чтобы несколько раз не скачивать одно и то же). Поскольку расписание на сезон более или менее фиксированное, в начале сезона составляем список и в течение этого времени оно работает автоматически, без нашего участия.

И казалось бы, оно работает и чего еще желать? Неплохо бы все-таки знать, а что там нового реально скачалось? Кто-то же должен сказать: «Скачано, подано, давайте смотреть! Позязя!».

По умолчанию QBittorrent дает возможность отправлять данные по электронной почте, уже даже с поддержкой SSL. Но использовать электронную почту в 2024 году для уведомлений? А почему бы не использовать телеграм сразу? Можно и его.

Если бы мы сидели где-нибудь под линуксами, то у нас была бы возможность сразу использовать готовый скрипт — qbittorrent_telegram_notification. Однако у нас Windows и нужно как-то выкручиваться по-другому. Под другим подразумевается использование Powershell для отправки сообщений.

В настройках QBittorrent нам нужно вызвать внешнюю программу после завершения скачивания: «powershell.exe -File C:\cmd\qbittorrent-alert.ps1 „%N“». Встроенный в Windows Powershell вызывает наш скрипт с параметрами. Не стоит забывать про Powershell Policy, обычно по умолчанию выполнение скриптов запрещено — нужно будет разрешить: Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted

Сам скрипт распространяется свободно и доступен в Github — Telegram notification template with Qbittorrent. Для работы достаточно указать токен телеграм бота и идентификатор чата, куда будут отправляться сообщения.

По итогу наших стараний получаем приватную «уведомлялку» о новинках.

Ранее Ctrl + ↓