Telegram Web Link
Очень простая и быстрая в настройке утилита для бэкапа GIT репозиториев. Можно использовать как для бэкапа куда-то локально или в S3, так и для копирования из одного репозитория в другой. Речь пойдёт про open source проект gickup.

Сразу покажу на примере, как я забэкапил к себе локально несколько своих закрытых репозиториев на публичном gitlab.

# wget https://github.com/cooperspencer/gickup/releases/download/v0.10.38/gickup_0.10.38_linux_amd64.tar.gz
# tar xzvf gickup_0.10.38_linux_amd64.tar.gz

Создаю конфигурационный файл conf.yml:

source:
gitlab:
- token: glpat-GtPuYrBvnxxkTFsq-Y
url: https://gitlab.com/
user: zeroxzed
include:
- gatus
- scripts
- configs
wiki: true
issues: true

destination:
local:
- path: /home/zerox/backup-gitlab
structured: true
keep: 5


Для получения token сходил в PreferencesAccess tokens и создал personal access token с доступом только на чтение. В своём примере я забэкапил только 3 репозитория: gatus, scripts, configs. Если их не указать, забэкапит все.

Запускаю бэкап:

# ./gickup conf.yml

Вот и всё. Gickup поддерживает все популярные платформы для хостинга git, как публичные, так и приватные:

- Github
- Gitlab
- Gitea
- Gogs
- Bitbucket
- Onedev
- Sourcehut

В качестве источников для сохранения или копирования поддерживает их же, плюс:

- локальная директория
- S3 хранилище

Настройка источников и приёмников отражена в документации. Там всё кратко и по делу. Список параметров невелик. У меня сразу всё получилось.

Очень простой и быстрый способ копировать репозитории в одно или несколько мест одновременно. Дополнительно gickup умеет отправлять уведомления о своей работе в ntfy, gotify и apprise. Также может локально логи писать и отправлять метрики в Prometheus. Правда не очень понял какие. Не проверял это.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#git #backup #devops
2👍91👎3
Подниму одну дискуссионную тему по поводу мониторинга. Я в разное время уже упоминал, что практикую такой подход, что на какие-то важные события делаю оповещения об успешном завершении, а не только об ошибках. И другим рекомендую так делать.

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

Такая тема хорошо работает, когда оповещений немного. Буквально 3-5, может 7. Если больше, то уже теряется смысл, так как легко что-то пропустить. У меня их уже много стало. И тут мне видятся 2 решения проблемы:

1️⃣ Убрать всё лишнее или как-то скомбинировать уведомления, чтобы их снова стало мало. Это не всегда возможно.
2️⃣ Сделать какую-то аналитику по почте. Например, собрать все такие письма в отдельный ящик и там считать количество в день или считать письма с различным содержимым. Можно как-то на дашборд графаны это вывести в красные/зелёные плитки, но опять же, теряется смысл, так как в эти дашборды никто постоянно не смотрит.

Городить аналитику по почте не хочется. Это надо какие-то костыли писать, которые будут по imap в ящик ходить. В целом, это не сказать, что сильно сложно. Тот же curl умеет ходить по imap и делать всё, что угодно. Но всё равно не очень хочется с этим связываться. Сейчас эти оповещения отправляются штатно различными программами, которые это умеют делать: Veeam, Proxmox и т.д.

Может кто-то уже решал такие задачи и есть простые идеи. Вы вообще шлёт себе успешные уведомления? Я честно говоря особо не видел у других этих тем. Обычно настраивают о неудачах, что видится логичным с точки зрения отсечения лишних отвлекающих уведомлений. Но есть определённый риск проспать проблему, с чем лично я сам сталкивался и не раз. Например, Veeam терял доступ к MSSQL и тупо не запускались его службы. Соответственно, он ничего не слал. Мониторинг службы на хосте то ли не был настроен, то ли не работал, то ли был отключен, уже не помню. Заметил случайно, что бэкапы не делаются несколько дней. А в почте был привычный молчок, как-будто всё в порядке.

#мониторинг
👍76👎5
На канале было опубликовано много всевозможных прикладных bash скриптов, которые я сам постоянно использую. У меня они все в отдельном репозитории лежат. Решил их собрать для вашего удобства в отдельную публикацию.

▪️lynis.sh - проверка системы с помощью lynis и выгрузка результатов в Zabbix
▪️vps-audit.sh - аудит безопасности сервера
▪️dir_size.sh - определяет размер директорий и записывает результат вместе с датой замеров в файл
▪️postgres.sh - отдельные консольные команды postgresql сервера для использования в своих скриптах (pg_dump, createdb, reindexdb, vacuumdb и т.д.)
▪️copy-last.day.sh - передача с помощью rsync с одного сервера на другой бэкапы прошлого дня, более старые не трогает, забирает файлы со стороны стороннего сервера, а не исходного, где лежат файлы
▪️tg_mon.py - следит за заданными строками в лог файле и шлёт уведомления в telegram, когда их видит
▪️dates.sh - заготовка под работу с датами в скриптах
▪️copy-mysql-table.sh - копирование отдельной таблицы базы данных с одного сервера на другой
▪️wget-speedtest.sh - загружает интернет канал загрузкой данных с публичных Looking Glass
▪️findmnt.sh - проверка существования точки монтирования
▪️ps_mem.py - использование оперативной памяти программами (не процессами)
▪️check_nginx_running.sh - анализ работы веб сервера Nginx для экспорта в логи или мониторинг
▪️contry-block.sh - блокировка стран с помощью ipset и iptables
▪️mysql-stat.sh - оптимизация конфигурации MySQL сервера под имеющуюся оперативную память
🔥topdiskconsumer.sh - очень удобная статистика по занимаемому месту
▪️swap.sh - использование swap процессами
▪️trash.sh - самостоятельная реализация корзины при удалении файлов

📌 Софт для работы со скриптами:

◽️Rundeck - веб интерфейс для централизованного управления работой скриптов на серверах.
◽️Cronicle - система планирования и управления задачами серверов. Условно его можно назвать продвинутым Cron с веб интерфейсом.
◽️Task - утилита, написанная на Gо, которая умеет запускать задачи на основе конфигурации в формате yaml. Более простая и функциональная замена утилите make.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#script #подборка
103👍247👎2
Вчера была новость о релизе Proxmox VE 8.4. Из нововведений там ничего особенного не увидел, кроме одного момента. Анонсировали Virtiofs – функциональность для совместного доступа к файлам и директориям хоста из виртуальных машин. Это реально полезная штука, так как нередко возникает такая потребность. Обычно приходится поднимать NFS или SMB для этого. Решил сразу посмотреть, как это работает.

Обновил тестовый гипервизор. В списке оборудования VM появилось новое устройство - Virtiofs. А в Datacenter появился новый подраздел Directory Mappings. В этом разделе вам нужно создать общую директорию на хосте, а потом в виртуальную машину добавить через новое устройство.

Итак, чтобы использовать Virtiofs для гостевых виртуальных систем надо:

1️⃣ Добавить общую директорию хоста через Datacenter ⇨ Directory Mappings.
2️⃣ Добавить устройство Virtiofs в виртуальную машину и указать ранее созданную общую директорию.
3️⃣ Современные ядра Linux версии >=5.4 имеют встроенную поддержку virtiofs, ничего специально для её работы делать не надо. Сразу монтируем внутри системы:

# mount -t virtiofs VM_Shares /mnt/VM_Shares

Я смонтировал общую директорию VM_Shares, добавленную в Directory Mappings с указанными именем в директорию /mnt/VM_Shares виртуальной машины с Linux.

Если у вас виртуальная машина Windows, то нужно установить специальный драйвер, который обеспечит поддержку virtiofs. Он входит в состав актуального диска VirtIO-Win package (virtio-win.iso). Дополнительно понадобится программа WinFsp. Это аналог линуксового FUSE.

Для Linux всё выглядит просто и удобно. Для Windows добавляются костыли в виде установки драйвера virtiofs и аналога линуксового FUSE, чтобы смонтировать пользователю общий диск. Не знаю, насколько это будет быстро и стабильно.

Документация по Virtiofs
Virtiofs в Windows

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#proxmox
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍231👎3
В systemd есть несколько команд, которые удобно использовать для получения информации о системе. Основное удобство в том, что они одинаковые везде, где используется systemd. А это фактически все современные дистрибутивы. Покажу основные из них.

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

📌# hostnamectl

 Static hostname: debian12-vm
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: c0cf2b29ca074056823a0f6a481b83b1
Boot ID: 74089e7977524666bc0a2f0b175b0967
Virtualization: kvm
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-26-amd64
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _i440FX + PIIX, 1996_
Firmware Version: rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org


Получаем всю необходимую информацию о системе. Не нужно идти куда-то ещё и уточнять. По крайней мере мне обычно этого достаточно. Команда заменяет все другие более старые, типа lsb_release -a, uname -a, cat /etc/os-release и т.д.

📌# timedatectl

               Local time: Thu 2025-04-10 15:01:26 MSK
Universal time: Thu 2025-04-10 12:01:26 UTC
RTC time: Thu 2025-04-10 12:01:26
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no


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

📌# loginctl

В таком виде команда малоинформативна, поэтому лично я её не использую. Нужно вспоминать дополнительные параметры. Для информации о пользователях по привычке использую просто w. Тем не менее loginctl может быть полезна, если нужны какие-то подробности. Например, команда без параметров выводит просто список сессий с номерами. Можно посмотреть детали:

# loginctl session-status 1

1 - root (0)
Since: Thu 2025-04-10 14:46:32 MSK; 15min ago
Leader: 676 (sshd)
Remote: 10.8.2.2
Service: sshd; type tty; class user
State: active
Unit: session-1.scope
├─676 "sshd: root@pts/0"
├─699 -bash
├─734 loginctl session-status 1
└─735 pager


Тут уже и дата подключения, и IP, и запущенные процессы. loginctl может выдать много всего о пользователях, но лично я обхожусь без неё и использую, как уже сказал w, id, cat /etc/passwd. Мне это видится короче и удобнее. Мои вопросы закрывает.

📌# journalctl

Про эту команду, думаю, рассказывать нет смысла. Постоянно упоминаю её в заметках, регулярно использую. Аналогов для просмотра бинарных логов systemd нет, так что выбирать не приходится.

В таком стиле знаю ещё одну команду:

📌# localectl

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

Если знаете ещё какие-то полезные команды в составе systemd, поделитесь информацией. Я не знаю и не видел где-либо чтобы кто-то пользовался чем-то ещё.

#systemd
👍214👎5
🎮 Поиграл в очень залипательную браузерную игрушку на тему механики работы процессов в операционной системе:

You're the OS!

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

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

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

По ходу выполнения процессов возникают задержки I/O. Пока есть задержка, процесс не выполняется. Надо кликнуть мышкой по I/O Events, чтобы убрать задержку.

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

И вот так всё это непрерывно работает, а тебе надо перемещать процессы, снимать блокировки, перемещать и возвращать блоки памяти.

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

#игра
👍72👎7
🎓 У облака от компании beeline есть небольшой бесплатный курс. Сразу скажу, что меня он в первую очередь привлёк тем, что там обещали Бесплатный доступ к облачным сервисам. Никакого бесплатного доступа я не увидел, а курс прослушал, поэтому расскажу вам о нём. Изначально хотел просто глянуть на это облако. Думал, что там к урокам курса дадут какой-то ограниченный доступ.

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

Последние два урока – демонстрация работы лектора. Можно на практике посмотреть, как он работает в VSCode, Postman и терминале.

Для доступа к курсу достаточно использовать только почту. Телефон можно не указывать. Никаких подтверждений не надо. Я прослушал всё на скорости 1,5.

https://cloud.beeline.ru/devopscloud/

#обучение
👍67👎18
Для тех, кто ещё не слышал или не знает, расскажу новости про ограничения на загрузку образов из Docker Hub. Вышла какая-то непонятная история, поэтому решил разобраться. Компания Docker анонсировала внедрение новых лимитов на загрузку образов из их хранилища, причём довольно суровых. Обещали только 10 загрузок в час для неаутентифицированных пользователей. То есть сделали в час 10 docker pull и получили временный бан, пока лимит не сбросится.

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

Я собрался рассказать, как по-быстрому настроить аутентификацию как локально, так и в том же Gitlab. Последние уже запланировали изменение в веб интерфейсе, чтобы можно было легко указать учётные данные для Docker. Также хотел упомянуть про локальные хранилища образов, которые можно развернуть у себя.

Зашёл на днях на страничку с лимитами и удивился, так как никаких новых лимитов там нет, можно не суетиться. Хотя я своими глазами видел, что они были, и даже отдельно была выделена новость, что с 1-го апреля они изменились. По факту сейчас всё так же, как и было: 100 запросов за 6 часов без аутентификации и 200 с ней. Протёр глаза и понял, что мне не мерещится. Реально изменений нет.

Сходу как-то даже новости на нашёл на эту тему. Практически молча всё откатили обратно, как было. Немного поискав, нашёл обновлённую старую новость от 21 февраля:

April 8, 2025: No changes to Docker Hub rate limits at this time

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

Для того, чтобы не зависеть от каких-либо ограничений со стороны Docker Hub, можно использовать свои registry. Настроить их очень просто и быстро. Вообще никаких проблем:

▪️Nexus
▪️Harbor
▪️Gitlab Registry
▪️Docker Registry + UI

Для того, чтобы туда автоматом закидывать образы с Docker Hub, можно воспользоваться, к примеру, Sinker. Или чем-то ещё. Таких утилит много. Можно настроить обращения к Docker Hub так, чтобы не выходить за лимиты, и держать свой локальный registry с актуальными образами.

#docker #devops
👍80👎2
Сейчас будет неожиданная заметка, после которой кто-то подумает, а может и напишет, что автор нуб, не знает таких очевидных вещей. Чего мне только не писали в комментариях. Из того, что запомнилось, это то, что меня бы на работу не взяли, такого бездаря. Также говорили, что я не достоин называться системным администратором.

Всё время, что работал администратором Windows, и будучи пользователем Windows, смотрел список сохранённых паролей в системе через Панель управления ⇨ Учетные записи пользователей ⇨ Диспетчер учетных данных.

А если в командной строке ввести команду:

> rundll32.exe keymgr.dll,KRShowKeyMgr

То откроется другой интерфейс для управления этими же сохранёнными данными. Я его на днях увидел вообще впервые.

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

Для того, чтобы не пропускать такие простые и не совсем очевидные вещи полезно сертифицироваться, даже если вам сертификат формально не нужен. Обычно вот такие примочки во время подготовки и узнаешь. Хотя у меня есть сертификат Microsoft Certified Professional (MCP), но уже не помню, было там такое или нет. Получал очень давно. Обратил тогда внимание, что узнал много таких вещей, о которых даже слышать не приходилось на учёбе или работе.

#windows
9👍298👎3
Ещё немного откровений по Windows. Эта тема мне давно знакома, но решил её углубить и заодно поделиться с теми, кто раньше не слышал о ней. ОС Windows умеет автоматически определять, подключен ли интернет на компьютере или нет. И делает она это следующим образом:

1️⃣ Делает DNS запрос для домена dns.msftncsi.com и ожидает ответ 131.107.255.255.
2️⃣ Делает HTTP запрос по адресу www.msftconnecttest.com/connecttest.txt и ожидает получить в текстовом файле фразу "Microsoft Connect Test".

Проверки могут отличаться в разных версиях Windows. Приведённую выше информацию я посмотрел у себя в Win11.

А теперь самое интересное. Это поведение настраивается через реестр. Есть ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet с параметрами:

◽️ActiveDnsProbeHost - DNS имя для проверки
◽️ActiveDnsProbeContent - ожидаемый ответ от DNS проверки
◽️ActiveWebProbeHost - веб сервер для HTTP проверки
◽️ActiveWebProbePath - имя текстового файла на веб сервере
◽️ActiveWebProbeContent - содержимое текстового файла

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

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

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

В логе веб сервера вы будете видеть примерно следующее:

178.18.225.228 - - [13/Apr/2025:13:45:23 +0300] "GET /connecttest.txt HTTP/1.1" 200 18 "-" "Microsoft NCSI"

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍391👎4
Небольшой практический совет во время отладки в консоли Linux. Иногда хочется узнать, в каком окружении работает то или иное приложение. Поти вся информация о процессах в Linux живёт в /proc/<pid>, в том числе и об его окружении. Посмотреть можно так:

# cat /proc/816/environ

LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binHOME=/var/lib/zabbixLOGNAME=zabbixUSER=zabbixSHELL=/sbin/nologinCONFFILE=/etc/zabbix/zabbix_agentd.conf

Всё в одну строчку. Не воспринимается глазами вообще. Можно ещё вот так посмотреть:

# ps e -ww -p 816

Тоже не очень наглядно. Так как у нас консоль и bash, то вывод можно как угодно обрабатывать, чтобы было удобно. Проще всего взять xargs, так как у него есть ключ --null, который позволяет разделять строку, используя разделителем так называемый NULL character. Я уже как-то раз писал про него. Иногда его удобно использовать, в том числе в find с ключом -print0.

# cat /proc/816/environ | xargs --null --max-args=1

или то же самое, но немного по-другому:

# xargs --null --max-args=1 echo < /proc/816/environ
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
HOME=/var/lib/zabbix
LOGNAME=zabbix
USER=zabbix
SHELL=/sbin/nologin
CONFFILE=/etc/zabbix/zabbix_agentd.conf

Я уже болен cat-офилией и привык везде её использовать. Уже даже не пытаюсь переучиться. Вместо grep постоянно делаю cat | grep. Вы выбирайте, что вам легче запоминается.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#linux #bash
4👍159👎2
Ещё одна реально полезная мулька в системе Windows, которую имеет смысл запомнить и применять, если у вас рабочая станция под управлением этой системы. Речь пойдёт про команду Powershell – Test-NetConnection. У неё есть простое и удобное сокращение – tnc.

Не буду писать всё, что она умеет. Никому эти списки всё равно реально не нужны. Они будут сохранены и забыты. Я посмотрел и прикинул, что мне лично показалось полезной в этой утилите.

1️⃣ Проверка работы интернета. У меня привычка проверять интернет так: ping ya.ru. На автомате это делаю. Пингую Яндекс. Вместо этого можно просто запустить tnc.

> tnc

ComputerName           : internetbeacon.msedge.net                                                                      RemoteAddress          : 13.107.4.52                                                                                    InterfaceAlias         : Беспроводная сеть                                                                              SourceAddress          : 192.168.140.82                                                                                 PingSucceeded          : True                                                                                           PingReplyDetails (RTT) : 73 ms


Запущенный без параметров он пингует домен internetbeacon.msedge.net, показывает его IP, показывает твой локальный IP и тип соединения (проводной/беспроводной), что удобно, если используешь и Ethernet и WiFi. У меня часто бывает, что не знаю, как подключен. Когда дома сажусь за рабочий стол, всегда подключаю провод, иногда забываю отключить WiFi, если сидел с ноутом на кухне или ещё где-то.

Тут и писать меньше, и информации сразу получаешь больше. В общем, удобно.

2️⃣ Проверка доступности порта, как замена telnet.

> tnc ya.ru -p 80

ComputerName     : ya.ru
RemoteAddress : 5.255.255.242
RemotePort : 443
InterfaceAlias : Беспроводная сеть
SourceAddress : 192.168.140.82
TcpTestSucceeded : True


Синтаксис интуитивный, запоминать особо не надо. Понравилось то, что просто проверяется доступность, нет попытки подключиться к сервису, как в telent. Чаще всего подключаться не надо. Telnet подключится и будет ждать ввода команд. И дальше начинается перебор всего, что в голову приходит, чтобы быстро отключиться. Если не получается, просто закрываю терминал.

Наверное можно было бы чем-то ещё быстро порты смотреть, но лично я привык использовать telnet. Его ещё и ставить сейчас надо отдельно. В базовой системе нет. С tnc получается удобнее. Буду использовать.

Tnc ещё умеет пинговать, трассировать, проверять маршруты. Много всего, но мне не показалось удобным делать это именно там. Не стал запоминать и рассказывать. Если интересно, посмотрите сами.

#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍255👎4
Я периодически использую Rocket.Chat. На текущий момент это хоть и не без недостатков, но тем не менее наиболее функциональное бесплатное решение для сервера чата, установленного на своих серверах. В целом, работает нормально, но утомляет его постоянное обновление. Нет LTS версии, минимум раз в пол года, а обычно и чаще, надо обновлять сервер с ненулевой вероятностью получить проблемы.

Рассказать я хотел не о нём. Чтобы не держать постоянно запущенным клиента Rocket.Chat, решил поднять для него шлюз в Telegram, чтобы пересылал туда сообщения. Нашёл довольно популярный проект Matterbridge, который поддерживает очень много популярных чатов:

◽️Discord
◽️IRC
◽️Matrix
◽️Mattermost
◽️Microsoft Teams
◽️Nextcloud Talk
◽️Rocket.chat
◽️Slack
◽️Telegram
◽️Twitch
◽️VK
◽️WhatsApp
◽️XMPP
◽️Zulip

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

Сразу скажу, что у меня не получилось настроить передачу из рокета в телегу. Я не знаю прочему. Бился пару часов, решить не смог, бросил. Получал постоянно ошибку, с которой справиться не смог. Но в целом, судя по описанию, вещь вполне рабочая и настраивается относительно легко. Покажу свой конфиг, который с точки зрения синтаксиса сделан правильно. Можно взять его за основу. Имя файла matterbridge.toml:

[rocketchat]
  [rocketchat.myrocketchat]
  Server="https://serveradmin.rocket.chat:443"
  Login="[email protected]"
  Password="topsecret"
  PrefixMessagesWithNick=false
  RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[telegram]
  [telegram.mytelegram]
  Token="13992116911:BBHtEAKqxUHYt45PoWwxKfvH5TR6-vdNw"
  RemoteNickFormat="<{NICK}> "
  MessageFormat=""
  QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
  QuoteLengthLimit=46
  IgnoreMessages="^/"

[[gateway]]
name="Serveradmin_gateway"
enable=true

  [[gateway.inout]]
  account="telegram.mytelegram"
  channel="-1001331797787"

  [[gateway.inout]]
  account="rocketchat.myrocketchat"
  channel="test-room"


Там логика такая, что сначала описывается доступ ко всем чатам-серверам, а потом указывается направление пересылки и конкретные чаты и группы, куда будут направляться сообщения.

Запускаем шлюз через простенький docker-compose.yml:

services:
 matterbridge:
  image: 42wim/matterbridge:stable
  restart: unless-stopped
  volumes:
  - ./matterbridge.toml:/etc/matterbridge/matterbridge.toml:ro


# docker compose up

Если в конфигурации будут ошибки, об этом будет информация и контейнер завершит работу.

Описание настроек для всех поддерживаемых чатов есть в wiki. Можно указывать разные направления пересылок, как в одну, так и в другую сторону, или двустороннюю пересылку. Также можно сообщения пересылать в несколько разных приёмников. Например, из группы Телеграм в несколько разных чатов. Если будете настраивать пересылку в или из Telegram, внимательно прочитайте последовательность действий в wiki. Обязательно отключить боту Privacy mode и после этого вывести его из группы и завести снова. Я пока последнее не сделал, не работало ничего в телеге.

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

🌐 Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#chat
👍83👎2
2025/07/13 06:13:35
Back to Top
HTML Embed Code: