DeSoft.ru
236 subscribers
116 photos
10 videos
1 file
213 links
Авторский канал: ИТ, разработка, безопасность, администрирование.

Сайт: desoft.ru
Автор: @y_demin
Download Telegram
🎁 OpenAI Academy опубликовала 300+ промптов на все случаи жизни. В подборке как общие запросы, так и целевые, под разные профессии: руководители, специалисты по продажам, маркетологи, разработчики, инженеры, эйчары и прочее.

Забираем "best practice" для повседневной работы с чат-ботами на официальном сайте академии 🎉

#ai #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚜 Linux по четвергам


📊 Мониторинг системы и производительности

🔻 iotop - Мониторинг использования дискового I/O по процессам в реальном времени
iotop -o -d 2

-o: показывать только процессы с I/O
-d: задержка между обновлениями

🔻 vmstat - Отображение системной статистики (CPU, память, I/O)
vmstat 2 5    # интервалы 2 секунды, 5 раз

Показывает: процессы, память, swap, I/O, систему, статистику CPU

🔻 iostat - Мониторинг загрузки устройств системного I/O
iostat -x 1   # расширенная статистика каждую секунду

-x: расширенная статистика
-c: только CPU
-d: только устройства

🔻 sar - Сбор и отчет об активности системы
sar -u 1 3    # использование CPU, интервалы 1 секунда, 3 раза
sar -r # использование памяти

-u: CPU
-r: память
-n DEV: сетевая активность по интерфейсам
-f: чтение из файла
-S: файл подкачки

💡 Несколько твиков

watch -n 1 'free -h && echo && df -h && echo && uptime' для непрерывного мониторинга или dstat -cdngy для комплексной статистики системы в реальном времени.

#linuxthursday #linux #шпаргалка
👍4
Forwarded from infosec
Андрей Созыкин завершил основной раздел своего курса по компьютерным сетям и приступил к следующей части, которая будет посвящена теме защищенных сетевых протоколов. В новом разделе будут рассмотрены следующие протоколы:

TLS – Transport Layer Security;
HTTPS – HTTP Secure;
DNS-over-TLS, DNS-over-HTTPS;
DNSSEC – DNS Security Extensions.

Отмечу, что лично я считаю данный курс одним из лучших и понятных в части изучения сетей. А еще курс полностью бесплатный и опубликован на YouTube, что делает его доступным для всех желающих! Напомню, что Андрей начал актуализировать свой курс еще год назад и сейчас можно посмотреть более 38 уроков:

Введение в курс;
Организация компьютерных сетей;
Терминология сетей;
Модель ISO OSI;
Модель и стек TCP/IP;
Стандартизация сетей;
Организация сетей TCP/IP;
Анализатор сети Wireshark;
Прикладной уровень;
Протокол HTTP;
HTTP в текстовом режиме;
Кэширование в HTTP;
HTTP в Wireshark;
HTTP API;
Практика по HTTP API;
HTTP API в Postman;
HTTP API в curl;
Система доменных имен DNS;
Протокол DNS;
Протокол DNS в Wireshark;
Типы записей DNS;
Типы записей DNS в Wireshark;
Утилиты DNS host и dig;
Итеративный и рекурсивный режимы DNS;
Транспортный уровень;
Протокол UDP;
Протокол UDP в Wireshark;
Протокол TCP;
Протокол TCP: скользящее окно;
Протокол TCP: установка соединения;
Утилиты TCPView, netstat и ss;
Протокол TCP: формат заголовка;
Протокол TCP в Wireshark;
Протокол TCP: управление потоком;
Протокол TCP: управление перегрузкой;
Интерфейс сокетов;
Практика по сокетам;
Протоколы, интерфейсы и сервисы.

Когда будет завершен раздел с описанием защищенных сетевых протоколов, то я обязательно опубликую эту информацию в канале. Либо можете самостоятельно отслеживать выход нового материала в этом плейлисте: https://www.youtube.com/playlist/seti

P.S. Не забывайте про мой репозиторий, в котором собрана подборка материала для изучения сетей (от курсов и книг, до шпаргалок и сообществ): https://github.com/SE-adm/Awesome-network

#Сети
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
Истек недавно срок регистрации одного домена. Ресурс был добавлен в бота для мониторинга. Смотрю актуальную проверку - срок истечения сертификата 65 дней. Причем тут сертификат? Он же автоматически перевыпускается раз в 3 месяца и не имеет никакого отношения к сроку регистрации домена...

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

🌐 Исходники на gitverse
🔭 Бот @monid_bot

#monitoring #проекты
👍4
👁 Мониторинг ресурсов и процессов Linux - типовая и ежедневная задача, решаемая рядом стандартных инструментов. Ниже подборка современных альтернатив устаревшим, иногда сложным для восприятия, утилитам top, htop, ps и им подобным.

🔹 gtop - терминальный дашборд с системной информацией и процессами на nodejs

🔹 bottom - кросс-платформенный графический монитор процессов и сборщик системной информации в терминале на Rust. Состоит их набора кастомизируемых виджетов, что позволяет настроить представление под себя.

🔥 glances - кросс-платформенное решение на Python с широким набором собираемое информации. Работа как в режиме клиента, так и сервера для удаленного мониторинга, API, web интерфейс, экспорт статистики в популярные форматы.

🔥 btop++ - мощное решение на C++ с поддержкой GPU, возможностями визуальной кастомизации, выбора тем и множеством других настроек.

🔹 procs - современный монитор процессов на Rust. Настраиваемый, легкий, с поддержкой расширенной информации о процессах по сравнению с ps.

#linux #tools #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Для получения образов в Docker по умолчанию используется официальный реестр - Docker Hub, а сделав несколько правок в конфигурации, можно подключиться к любому другому публичному или частному реестру.

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

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

🎈 Для решения задачи трансфера локальных образов напрямую на целевую машину существует проект unregistry. Это плагин для Docker, который позволяет отправлять образы по слоям через ssh, т.е. синхронизировать их с удаленным хостом. Особенностью является отправка только тех слоев образа, которых еще нет на удаленной машине, что значительно повышает скорость синхронизации.
rsync для Docker образов


🔎 Как работает

▫️ Устанавливается ssh соединения с удаленным сервером.
▫️ На сервере запускается контейнер unregistry, который выступает в роли временного локального реестра (контейнер загружается из реестра github - ghcr.io, либо, в случае отсутствия доступа к интернет на целевой машине, его можно загрузить локально заранее и отправить на целевую машину через docker save image | ssh user@host 'docker load').
▫️ С локальной машины, откуда вызвали скрипт трансфера, пробрасывается случайный порт на порт unregistry удаленной машины, чтобы локальный Docker-клиент мог обратиться к удаленному unregistry контейнеру как к локальному.
▫️ Выполняется docker push через открытый туннель. unregistry на сервере проверяет существующие слои в хранилище и запрашивает только недостающие. Происходит передача слоев через ssh.
▫️ На удаленной машине останавливается и удаляется временный контейнер unregistry и закрывается ssh-туннель.

🔨 Установка

mkdir -p ~/.docker/cli-plugins
# скачиваем скрипт и сохраняем в каталог плагинов Docker
curl -sSL https://raw.githubusercontent.com/psviderski/unregistry/v0.3.1/docker-pussh -o ~/.docker/cli-plugins/docker-pussh
# делаем исполняемым
chmod +x ~/.docker/cli-plugins/docker-pussh


🚀 Примеры использования

# отправка на определенный ssh порт
docker pussh myapp:latest user@host:2222

# с использованием ключей
docker pussh myapp:latest user@host -i ~/.ssh/id_rsa


🌐 Больше примеров в описании репозитория.

📌 В итоге, представленный проект упростит деплой образов за счет исключения из цепочки необходимости использования реестра. Отлично подойдет для локального применения в homelab, встраивания в CI/CD и даже продакшена.

#docker #tools #deploy #cicd #homelab
👍6🔥1
📚 Cursor выпустили бесплатный интенсив для разработчиков, которые используют или планируют использовать ИИ для написания софта.
Этот курс поможет понять основы и покажет практические паттерны того, как создавать софт с помощью ИИ-моделей и инструментов. Мы приведём примеры на базе Cursor, но эти паттерны применимы к любым ИИ-моделям и продуктам.


🔸 Модели и их ограничения
🔸 Практика работы с ИИ. Как взаимодействовать с ИИ, чтобы получать рабочий код.
🔸 Вспомогательные инструменты
🔸 Агенты

🌐 Весь материал на русском языке. Проходим здесь.

#ai #полезное
👍5
🚜 Linux по четвергам


🖥 Системная информация и аппаратура

🔻 lscpu - Отображение подробной информации об архитектуре CPU
lscpu | grep -E "(Model|CPU\(s\)|Thread|Core)"

Показывает: модель CPU, ядра, потоки, архитектуру, размеры кэша

🔻 lsblk - Список блочных устройств в формате дерева
lsblk -f    # показать информацию о файловых системах
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE

-f: информация о FS
-o: пользовательские колонки
-a: все устройства

🔻 dmidecode - Отображение информации об оборудовании из DMI/SMBIOS
dmidecode -t memory | grep -i size        # информация о RAM
dmidecode -t system | grep -E "(Manufacturer|Product)"

-t: фильтр типа (bios, system, baseboard, chassis, processor, memory, cache, connector, slot)

🔻 inxi - Скрипт системной информации с исчерпывающим выводом
inxi -Fxz    # полная информация о системе, дополнительные детали, фильтр приватных данных
inxi -b # базовая информация о системе

-F: полный вывод
-x: дополнительные детали
-z: фильтр приватных данных
-b: базовая информация

💡 Твик: bash-скрипт системной информации для быстрых обзоров системы.
#!/bin/bash
echo "=== Сводка системы ==="
uname -a
lscpu | head -5
free -h
df -h /
uptime


#linuxthursday #linux #шпаргалка
👍3👏1
Proxmox сообщество не перестает расширяться, альтернативу такому комплексному решению в opensource среде подобрать довольно сложно. Широкое распространение, что логично, ведет к появлению все большего числа сопутствующих инструментов и сервисов, поэтому решил посвятить ряд подборок проектам proxmox тематики.

⚒️ Подборка скриптов и утилит для автоматизации установки и настройки Proxmox

🎈 Proxmox VE Helper-Scripts. Коллекция из сотен скриптов для автоматизации изменения конфигураций, установки контейнеров и виртуальных машин. Применяются через shell Proxmox.

▪️ Скрипты от ttech - последний раз сборник обновлялся в ноябре 2024, репу убрали в архив, так что для свежих версий Proxmox будет уже неактуально, однако коллекция до сих пор живет, можно перепутать и нарваться на ошибки при попытке использования.
▪️ Community сборник - актуальный на данный момент перечень из 300+ заготовленных скриптов по разным категориям.

🎈 CV4PVE Tools Suite от Corsinvest. Набор профессиональных утилит.

▪️ cv4pve-admin - веб-интерфейс администрирования
▪️ cv4pve-autosnap - автоматические снапшоты
▪️ cv4pve-cli - CLI-инструменты
▪️ cv4pve-diag - диагностика
▪️ cv4pve-metric - сбор метрик

#proxmox #полезное
👍3🔥1
Стараюсь хотя бы раз в год проходить курс или интенсив для общего развития, разбора новой темы или углубления по какому-либо направлению.

📚 Наткнулся на информацию о курсе "Использование алгоритмов машинного обучения для решения задач кибербезопасности" от Positive Technologies 🟥 и университета ИТМО. Направление как никогда актуальное, программа интересная, но непростая, а главное - реальные задачи, а не шаблонные заготовки.

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

#учеба #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Собрал небольшой workflow для автоматического преобразования Telegram постов под платформы vk, dzen и MAX с фиксацией результата в Google Sheet. Репостим публикацию в собственного бота и получаем заполненную строку в таблице с адаптированным форматированием.

✏️ Подготовка

☑️ Разворачиваем n8n на своем сервере за доменом. Без сертификата api некоторых сервисов блокируют работу, что не дает возможности использовать, например, Telegram триггер для перехвата сообщений.
Пошаговая процедура поднятия n8n за traefik в Docker подробно расписана в документации со всеми необходимыми конфигурациями.

☑️ Заводим Telegram бота для перехвата сообщений в n8n
▫️ @BotFather
▫️ /start -> /newbot
▫️ Выбираем название и получаем API Token.

🚀 Собираем простенький workflow (см. приложенный скриншот)

1️⃣ Telegram Trigger
▪️ В Credential to connect with указываем полученный ранее токен бота.
▪️ В Trigger On тип Message для перехвата сообщений.

2️⃣ Блок кода для преобразования сообщения
Натравил qwen на эту задачу, чтобы реализовать функции обработки текста с учетом обычных и вложенных ссылок, а также специфической разметки.
Получившийся код, который подставил в ноду Code in JavaScript
// Входящие данные
const items = $input.all();
return items.map(item => {
const message = item.json.message;
let text = message.text || message.caption || '';
let entities = message.entities || message.caption_entities || [];
// Сортируем с конца, чтобы не съезжали индексы при вставке
entities = entities.sort((a, b) => b.offset - a.offset);
// Вставляем скрытые ссылки в текст как "Текст (ссылка)"
for (const entity of entities) {
if (entity.type === 'text_link') {
const before = text.substring(0, entity.offset);
const linkText = text.substring(entity.offset, entity.offset + entity.length);
const after = text.substring(entity.offset + entity.length);
text = `${before}${linkText} (${entity.url})${after}`;
}
}
// Функция для преобразования HTML-разметки Telegram в текст
function telegramToPlain(text) {
return text
.replace(/<b>(.*?)<\/b>/g, '**$1**') // жирный
.replace(/<i>(.*?)<\/i>/g, '*$1*') // курсив
.replace(/<s>(.*?)<\/s>/g, '~~$1~~') // зачёркнутый
.replace(/<a href="([^"]*)">([^<]*)<\/a>/g, '[$2]($1)') // обычные ссылки
.replace(/<.*?>/g, ''); // прочие теги
}
// Функция для VK: просто текст + скрытые/обычные ссылки
function telegramToVk(text) {
return text
.replace(/<b>(.*?)<\/b>/g, '$1') // просто убираем теги
.replace(/<i>(.*?)<\/i>/g, '$1')
.replace(/<s>(.*?)<\/s>/g, '$1')
.replace(/<a href="([^"]*)">([^<]*)<\/a>/g, '$2 $1') // ссылки: текст + URL
.replace(/<.*?>/g, '');
}
// Функция для Дзен и Max: Markdown
function telegramToMarkdown(text) {
return text
.replace(/<b>(.*?)<\/b>/g, '**$1**')
.replace(/<i>(.*?)<\/i>/g, '*$1*')
.replace(/<s>(.*?)<\/s>/g, '~~$1~~')
.replace(/<a href="([^"]*)">([^<]*)<\/a>/g, '[$2]($1)')
.replace(/<.*?>/g, '');
}
const vkText = telegramToVk(text);
const dzenText = telegramToMarkdown(text);
const maxText = telegramToMarkdown(text);
return {
json: {
vk: vkText,
dzen: dzenText,
max: maxText
}
};
});


3️⃣ Сохранение результата в таблицу
Нода Append row in sheet для добавления новых записей в существующую гугл таблицу. Здесь, в первую очередь, нужно подключить своего гугл клиента с разрешенным доступом к API Google Drive и Google Sheets. Пошаговая инструкция здесь.
После обработки пришедшего сообщения имеем json с 3 полями - vk, dzen и max. Согласно эти полям и заполняются ячейки новой записи в таблице.

📌 Что дальше?
▪️ Добавить обработку медиа контента из поста.
▪️ Расширить информацию в таблице о посте. Сопроводить служебными данными для удобства дальнейшего использования.
▪️ Настроить автоматическую публикацию на разные платформы.

P. S. Не забываем оставлять реакции. Много репостов вижу по статистике, а реакций в 2, а то и в 3 раза меньше.

#ai #n8n #automation
👍7🔥1
🔗 Тем временем на сайте новая заметка про Golang. На несложных примерах разобрана тема оптимизации использования памяти - как путем нехитрых перестановок полей сэкономить выделяемые собственным структурам данных ресурсы.

#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏1
🚜 Linux по четвергам


🔧 Управление службами и системой

🔻 systemctl - Контроль служб systemd и состояний системы
systemctl status nginx                   # проверка статуса службы
systemctl enable --now postgresql # включить и запустить службу
systemctl list-units --failed # показать неудавшиеся юниты

status: показать статус
enable: автозапуск при загрузке
--now: запустить немедленно
--failed: только неудавшиеся

🔻 journalctl - Запрос логов журнала systemd с мощной фильтрацией
journalctl -u nginx -f                   # следить за логами nginx
journalctl --since "2 hours ago" -p err # ошибки за последние 2 часа

-u: конкретный юнит
-f: следить
--since: фильтр времени
-p: уровень приоритета

🔻 loginctl - Контроль пользовательских сессий и мест
loginctl list-sessions                   # показать активные сессии
loginctl kill-session 2 # завершить сессию


🔻 timedatectl - Контроль системного времени и настроек даты
timedatectl set-timezone Europe/Moscow
timedatectl set-ntp true


🔻 hostnamectl - Управление системным именем
hostnamectl set-hostname vm-01 # установить статическое имя


🔻 localectl - Управление системной локалью
localectl list-locales              # список доступных локалей
localectl set-locale LANG="C.UTF-8" # указать локаль по умолчанию


💡 Несколько твиков

▫️ systemctl --user для управления пользовательскими службами.
▫️ systemd-analyze blame для поиска медленно загружающихся служб.
▫️ Создаем пользовательские службы в ~/.config/systemd/user/ для личной автоматизации.

#linuxthursday #linux #шпаргалка
👍5👏1
🎉 Курс по ML в ИБ стартанул. Уже успели порешать первые задачки по подготовке классификационных моделей.

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

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

🤷‍♂️ Тем, кто не знаком с основами ML, конечно, трудновато сразу нырять в практику, да еще и на соревновательной площадке. Ниже подборка полезных ресурсов по теме, как для начинающих, так и продвинутых, что позволит разложить по полочкам некоторые не самые простые моменты этого направления.

📚 Базовые знания

▪️ Основы Python от Яндекс
▪️ Математика для анализа данных от Яндекс

📖 Целевые курсы

▪️ "ИИ Старт". Курс по машинному обучению от Школы глубокого обучения МФТИ (часть 1, часть 2)
Школа глубокого обучения МФТИ уже не первый год проводит семестры по машинному обучению, весь материал бесплатен и размещен на stepic.
▪️ Учебник по машинному обучению от Яндекс

#учеба #полезное #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🍴 Для тех, кто любит экспериментировать с ИИ кодингом, Глеб Кудрявцев выпустил в открытый бета тест тулзу ShotgunPro - облачный агент для проектов с большой кодовой базой.

Работает на одном из трех провайдеров - gemini, openai, openrouter. Основной фишкой является здоровенное контекстное окно в 2 млн токенов, что популярные агенты для разработки предоставить на данный момент еще не готовы. Запас памяти такого размера позволит вести проект долго и не потерять "мысль" посреди процесса.

#ai #полезное
👍3🔥3
На сайте выложил небольшую инструкцию по установке и настройке ИИ-ассистента для разработки. В основе Qwen Coder модели и расширение Kilo Code AI Agent для vscode .

Ключевые моменты:

⚡️ Качественные модели для кодинга: qwen3-coder-plus и qwen3-coder-flash - более умная и более быстрая соответственно.

🔥 Бесплатный тариф с контекстным окном в 1 000 000 токенов и 2000 запросов в день, чего с запасом хватит для ежедневной работы с вполне себе приличной кодовой базой.

🌚 Без привязки карт, подписок и доступов через третьи страны.

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

🌐 Инструкция

#ai #vibecoding #vscode #development
👍8
Отвлечемся пока от темы ИИ. Давно пользуюсь MobaXTerm - швейцарский нож для удаленных подключений с удобным интерфейсом и кучей утилит в комплекте, но периодически посматриваю альтернативы, т.к. инструментов такого рода, в том числе в opensource исполнении, довольно много появляется.

💻 Попробовал на днях Termix - opensource selfhosted менеджер подключений с клиентами под разные устройства (Web, Windows, Linux, Android, iOS, macOS скоро тоже появится). Захостил сервер на виртуалке, поставил клиентов под Windows и Android, поигрался с подключениями - сразу бросается в глаза современное исполнение интерфейса, удобство организации рабочего пространства, быстрая работа без прогрузок, глюков и непонятных непредсказуемых нюансов.

💡 Что умеет?

🔹 SSH подключения и туннели
🔹 Удаленный файловый менеджер
🔹 Сбор статистики удаленных серверов
🔹 Многопользовательский режим и интеграция с внешними системами авторизации
🔹 Вкладки и сплит экрана для одновременного отображения до 4 подключений
🔹 Тэгирование и каталоги подключений

Мне не хватило только RDP / VNC, но roadmap у проекта забит плотно, так что, думаю, стоит ожидать расширения возможностей.

🧷 Как поднять на своем сервере подробно расписано в доке.
🧷 Клиентские приложения в релизах.

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

#ssh #terminal #remote #selfhosted #opensource
👍5