Useful Tools | Linux | GitOps | DevOps
الذهاب إلى القناة على Telegram
Полезные бесплатные opensource инструменты на все случаи жизни, а иногда и советы. Понравился проект из поста - поддержи автора звездой! Web: https://gitgate.d3.ru Сотрудничество: @maxgrue
إظهار المزيد6 701
المشتركون
-324 ساعات
+67 أيام
+1330 أيام
أرشيف المشاركات
Совет дня:
Или bash Default values
Частенько требуется в bash скрипте указать значение переменной по умолчанию, например если не задано прямо.. Однако не все так просто...
Краткий списочек с описанием логики.
# bash one liner # output
# -------------- ------
x="foo" && echo "${x:-bar} (x = $x)" # foo (x = foo)
x="" && echo "${x:-bar} (x = $x)" # bar (x = )
unset x && echo "${x:-bar} (x = $x)" # bar (x = )
x="foo" && echo "${x-bar} (x = $x)" # foo (x = foo)
x="" && echo "${x-bar} (x = $x)" # (x = )
unset x && echo "${x-bar} (x = $x)" # bar (x = )
x="foo" && echo "${x:=bar} (x = $x)" # foo (x = foo)
x="" && echo "${x:=bar} (x = $x)" # bar (x = bar)
unset x && echo "${x:=bar} (x = $x)" # bar (x = bar)
x="foo" && echo "${x=bar} (x = $x)" # foo (x = foo)
x="" && echo "${x=bar} (x = $x)" # (x = )
unset x && echo "${x=bar} (x = $x)" # bar (x = bar)
x="foo" && echo "(x = $x)" && echo "${x:?error message}" # (x = foo) foo
x="" && echo "(x = $x)" && echo "${x:?error message}" # (x = ) bash: x: error message
unset x && echo "(x = $x)" && echo "${x:?error message}" # (x = ) bash: x: error message
x="foo" && echo "${x:+bar} (x = $x)" # bar (x = foo)
x="" && echo "${x:+bar} (x = $x)" # (x = )
unset x && echo "${x:+bar} (x = $x)" # (x = )
опубликовано в #gitgate
#tips #bashHelm Dashboard - проект с открытым исходным кодом, который предлагает GUI для просмотра установленных диаграмм Helm, просмотр их историю и используемых ресурсов K8S
Он также позволяет выполнять простые действия, такие как откат к предыдущей версии или обновление до более новой.
Ключевые возможности:
- просмотр всех установленных чартов и их историю
- просматривать Manifest Diff между ревизиями
- просматривать ресурсы K8S, задействованные в чарте
- простой откат или обновление версии чартов
- интеграция с популярными сканерами проблем
- легкое переключение между несколькими кластерами
- может быть использован локально или установлен в кластер Kubernetes
- не требует установки Helm или Kubectl
https://github.com/komodorio/helm-dashboard
опубликовано в #gitgate
#gui #k8s #helm #chartohshitgit - описание некоторых особенностей git в хардкор стиле, или когда в официальной документации ничего непонятно !
https://ohshitgit.com/ru
есть и более лайтовая версия
https://dangitgit.com/ru
опубликовано в @gitgate
#manual #dog #gitnginx-client-certificate-authentication - пример конфигурации NGINX, включающий аутентификацию по сертификату клиента, то есть пользователь/клиент должен представить сертификат, чтобы получить доступ.
https://gist.github.com/ronau/f78dfef5c496e4240708bbedc6ca512d
опубликовано в @gitgate
#nginx #security #auth #ssl #certPG_CRON -простой планировщик заданий на основе крона для PostgreSQL (10 или выше), который работает внутри базы данных в качестве расширения.
Он использует тот же синтаксис, что и обычный Cron, но позволяет планировать команды PostgreSQL непосредственно из базы данных. Вы также можете использовать «[1-59] секунды», чтобы запланировать работу на основе интервала.
PG_CRON также позволяет вам использовать '$', чтобы указать в последний день месяца.
PG_CRON может запускать несколько заданий параллельно, но он работает не более одного экземпляра работы за раз. Если второй запуск должен начаться до первого завершения, то второй прогон подвергается очереди и начинается, как только завершится первый пробег.
https://github.com/citusdata/pg_cron
Поделился: Maz Zotov - @sf1nk5
опубликовано в @gitgate
#postgres #cron #plugintelegram-bot-bash - простой Telegram bot, написанный на bash
https://github.com/topkecleon/telegram-bot-bash
Подсказал: @Tagd_Tagd
опубликовано в @gitgate
#telegram #bot #bashsql_exporter - экспортер \ сервис который запускает пользовательские запросы SQL с гибкими промежутками и экспортирует полученные метрики через HTTP для передачи в Prometheus
В настоящее время поддерживается:
- Postgres
- ClickHouse
- AWS Athena
- MS-SQL
- MySQL
- Snowflake
- Vertica
- Materialize
- CloudSQL
В комплекте дашбоард для Grafana !
Например у вас есть старенькая CRM которая не умеет в мониторинг, но из которой можно SQL запросом получить что угодно. Бинго, у вас есть мониторинг CRM !
https://github.com/justwatchcom/sql_exporter
опубликовано в @gitgate
#moni #sql #exporter #prometheusGrafanaJsonDatasource - любой JSON API в роли Grafana DataSource
Выполняет запросы произвольных бэкэндов и анализирует ответ JSON в Grafana DataFrames.
Красивый и незатратный метод получить и визуализировать метрики вообще откуда угодно, главное чтобы у приложения или сервиса был Rest API.
https://github.com/simPod/GrafanaJsonDatasource
опубликовано в @gitgate
#moni #grafana #json #apiWinRAR-KeyGen-Online - онлайн генератор ключей для WinRar на чистом JS
Winrar - это утилита архиватор для Windows, разработанный Юджином Рошалом из Win.Rar GmbH. Winrar не бесплатное программное обеспечение. Если вы хотите использовать его, вам следует пойти в Рарлаб и заказать его. Генератор предназначен только для личных исследований (таких как конечная полевая арифметика, криптография эллиптической кривой) и реализовано исключительно в JavaScript и не использует какие -либо другие библиотеки. Этот веб -сайт только рассказывает, как генерируется файл лицензии Winrar "rarreg.key".
Внимание - использовать только во имя добра и самообразования !
https://github.com/YJTSAI-17/WinRAR-KeyGen-Online
Онлайн версия: https://winrar-keygen.tsai.best/
опубликовано в @gitgate
#security #winrar #keygen #jsСовет дня:
Запустили vi или vim и не знаете как из него выйти ? Используйте комбинацию клавиш:
Ctrl+Alt+Resetопубликовано в @gitgate #tips #vi
Совет дня:
Окрыли в
vi и внесли кучу правок в файл, а прав на сохранение не хватает ? Не проблема !
Esc : (командный режим)
w !sudo tee > /dev/null %
альтернативный вариант
Esc :
w !sudo sh -c "cat > %"
опубликовано в @gitgate
#tips #viTechnitium DNS Server - авторитетный, а также рекурсивный и кэширующий DNS -сервер, который можно использовать для самостоятельного хостинга конфиденциального и безопасного сервера DNS. Он работает "из коробки" с минимальной конфигурацией и обеспечивает удобную веб-консоли, доступную для любого современного веб-браузера.
Возможности:
- мультиплатформенный, работает на Windows, Linux, MacOS и Raspberry Pi.
- Docker Image доступен на Docker Hub.
- простая установка с минимальной конфигурацией.
- блокировка рекламы и вредоносных программ с использованием одного или нескольких блог листов.
- поддержка работы в качестве авторитетного, а также рекурсивного DNS -сервера.
- высокопроизводительный DNS-сервер на основе Async IO, который может обслуживать миллионы запросов в минуту даже на оборудовании для компьютера на настольном компьютере
- поддержка DNS-TLS, DNS-Over-HTTPS и DNS-Over-Quic
- поддержка DNS-Over-HTTPS транспортные протоколы HTTP/1.1, HTTP/2 и HTTP/3.
- поддержка DNS over Proxy версии 1 и 2, как для UDP, так и для TCP.
- используеn общедоступные резолверы DNS, такие как Cloudflare, Google, Quad9 и Adguard с DNS-Over-TLS, DNS-over-HTTPS или DNS-Quic-Quic протоколами в качестве форвардеров.
- усовершенствованное кэширование с prefetch и autoprefetch
- постоянная функция кэширования, которая сохраняет кэш на диск, при перезагрущке DNS -сервера
- поддержка валидации DNSSEC с помощью алгоритмов RSA & ECDSA для рекурсивного разрешения, поддержка NSEC и NSEC3.
- поддержка DNSSEC для всех поддерживаемых транспортных протоколов DNS, включая зашифрованные протоколы DNS.
- поддержка ответов на основе геолокации
- поддержка списков блоков на основе Regex
Первичная, вторичная, загрязняющая и условная поддержка зоны.
- DNSSEC подписка зоны поддержки с помощью алгоритмов RSA & ECDSA.
- поддержка DNSSEC для NSEC и NSEC3.
- wildcard поддомены
и многое другое...
https://github.com/TechnitiumSoftware/DnsServer
опубликовано в @gitgate
#dns #dnssec #webuidockge - простой в использовании Docker Compose.yaml Stack менеджер.
Возможности:
- управление compose.yaml файлами
- интерактивный редактор для compose.yaml
- интерактивный веб -терминал
- поддержка нескольких агентов - вы можете управлять несколькими стеками из разных хостов Docker в одном интерфейсе
- преобразование docker run ... команды в compose.yaml
https://github.com/louislam/dockge
опубликовано в @gitgate
#docker #gui #docker-compose8-Bit-MusicMaker - чувствуете ностальгию, когда вы слышите музыку из старой видеоигры? Если так, то 8-битный синтезатор позволит вам пережить эти воспоминания!
Он наполнен 8-битными звуками из прошлого и обладает бесконечными возможностями создания треков(требуется некоторое творчество)! Эта игровая площадка - идеальное место для творчества, и для того, чтобы потешить своего внутреннего ребенка.
https://github.com/BenEmdon/8-Bit-MusicMaker
Бонус:
Коллекция лучших треков из прошлого - https://www.premiumbeat.com/ru/royalty-free-music-genre/8bit
опубликовано в @gitgate
#8bit #misic #oldwareСовет дня:
Как в
bash удалить повторы из массива
<uniques>=($(echo "${<array>[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
Пример:
--> ARRAY=("one" "one" "two" "two" "two" "one" "three")
--> UNIQUES=($(echo "${ARRAY[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
--> echo $UNIQUES
one three two
опубликовано в @gitgate
#tips #bashGixy инструмент для анализа конфигурации NGINX.
Основная цель Gixy - предотвратить неправильную конфигурацию безопасности и автоматизировать обнаружение недостатков.
https://github.com/yandex/gixy
опубликовано в @gitgate
#nginx #security #tools #cliСовет дня:
Показать в
bash длину массива
echo $#<array>[@]
или если совсем правильно
echo ${#arrayname[@]}
Пример:
--> ARRAY=("one" "two" "three")
--> echo $ARRAY
one two three
--> echo $#ARRAY[@]
3
опубликовано в @gitgate
#tips #bashХотите освоить Go с самых азов и понять, чем он покорил разработчиков по всему миру? Тогда приходите на мини-практикум по Golang от Rebrain!
💡 Что вас ждёт?
Теория + практика: изучайте Go на примерах из реальной жизни, чтобы понять, как его используют в настоящих проектах.
Мгновенная проверка задач: пишите код, сразу получайте результат и учитесь на практике.
Поддержка эксперта: наш наставник, тимлид с 5-летним опытом в Go.
👨💻 Наставник и автор практикума:
Дмитрий Гордеев — тимлид разработки облачных решений с опытом работы в Go 5+ лет.
Всего за 10 дней практикума вы:
✅ Освоите ключевые темы языка (горутины, обработка ошибок, структуры и интерфейсы).
✅ Попробуете себя в роли Go-разработчика.
✅ Решите главный вопрос: хотите ли вы погрузиться в этот язык глубже?
🎁 А ещё мы подготовили приятный бонус: плейлист с записями открытых практикумов по Go для всех желающих.
👉 Забирайте плейлист и записывайтесь на практикум: https://clck.ru/3G4yZj
Реклама. ООО "РЕБРЕИН". ИНН 7727409582 erid: 2Vtzvne2cEF
Совет дня:
Немного про числовые условия в
bash
! EXPRESSION - The EXPRESSION is false. -n STRING The length of STRING is greater than zero. -z STRING - The length of STRING is zero (i.e. it is empty). STRING1 = STRING2 - STRING1 is equal to STRING2 STRING1 != STRING2 - STRING1 is not equal to STRING2 INT1 -eq INT2 - INT1 is numerically equal to INT2 INT1 -gt INT2 - INT1 is numerically greater than INT2 INT1 -lt INT2 - INT1 is numerically less than INT2 -d FILE - FILE exists and is a directory. -e FILE - FILE exists.опубликовано в @gitgate #tips
awesome-compose - образцы различных сервисов в виде Docker Compose файлов и управления их развертыванием.
В репозитории собраны шаблоны для разворачивания различных сервисов и платформ в виде docker-compose.yml Удобно использовать как отправную точку / шаблон для написания собственных стеков.
https://github.com/docker/awesome-compose
опубликовано в @gitgate
#docker #docker-compose #sample