Skip to content

Instantly share code, notes, and snippets.

View anutator's full-sized avatar

Anna T anutator

View GitHub Profile
@anutator
anutator / helm-cheatsheet.md
Last active January 3, 2023 18:47
Kubernetes

Добавление репозитория helm

Можно добавить свой созданный репозиторий с чартами или репозиторий из Интернет, искать на https://artifacthub.io/ helm repo add bitnami https://charts.bitnami.com/bitnami — добавили репозиторий с локальными именем bitnami, далее указан адрес репозитория helm repo list — список локальныех репозиториев helm repo update — получить (обновить) информацию о доступных чартах из соответствующих репозиториев чартов. Информация кешируется локально, потом может использоваться командой поиска. helm search repo — список всех чартов во всех установленных репозиториях helm search repo -l — список всех чартов во всех установленныx репозиториях, отображать все версии каждого чарта helm search repo nginx — поиск во всех добавленных репозиториях чартов со словом nginx в названии или описании. Регистр букв не учитывается. CHART VERSION — версия самого чарта. APP VERSION — версия приложения (например nginx), которое разворачивает чарт. helm search repo -l nginx или `helm search

@anutator
anutator / Makefile
Last active January 24, 2023 21:41
Создание Makefile для удобства повседневной работы
# Пример Makefile
SHELL:=/bin/bash
.DEFAULT_GOAL := help
dt := $$(date +"%Y-%m-%d")
logs := logs
.PHONY: ps status up down restart images logs help
ps: ## список всех контейнеров (распределены по подам)
podman ps --pod
@anutator
anutator / bash.md
Last active January 3, 2023 18:12
Linux

Использование массивов в gzip

Когда-то делала интересный вариант архивирования для Asterisk, который практически нигде в Интернете не описан, но очень удобен, потому что лаконичен. Я уверена, что мало кто так делал архивирование. Обычно в команде tar пишут простыню.

Дополню: дамп SQL не всегда целесообразно делать через mysqldump. Если база очень большая, нужно использовать новый способ через mysqlsh с автоматическим архивированием в zstd архивы. Этот способ намного быстрее и не требует блокировки.

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

bkdir="/backup"                  # каталог бэкапа
timestamp=$(date +%Y%m%d_%H%M)   # текущие дата и время
@anutator
anutator / alias.sh
Last active October 13, 2022 11:37
My useful aliases and functions
# Two varians — bash function or alias: podman, get container name, ip address and ports.
podip () {
podman inspect -f '{{.Name}}\t{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}\t{{.NetworkSettings.Ports}}' $(podman ps -q)
}
# in alias you must use two backslashes \\t to make Tab working
alias podip='podman inspect -f ''{{.Name}}\\t{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}\\t{{.NetworkSettings.Ports}}'' $(podman ps -q)'
# сжатие всех png файлов из каталогов и подкаталогов текущего каталога. Установить `sudo apt install png{quant,check} zopfli`
alias png1='find . -type f -name "*.png" -exec pngquant 64 --skip-if-larger --strip --ext=.png --force {} +'
@anutator
anutator / cleanup-gitlab-pipelines.sh
Last active July 19, 2023 07:42
Bulk delete gitlab pipelines older than a given date
#!/bin/bash
# Purpose: Bulk-delete GitLab pipelines older than a given date
# Author: github.com/chrishoerl
# New features: Anna Toropova https://github.com/anutator
# GitLab API: v4
# Requirements: jq must be instaled ($ sudo apt install jq)
# API example: https://gitlab.example.com/api/v4/projects
# API example: https://gitlab.example.com/api/v4/projects/<projectid>/pipelines
#
# NOTE: To dryrun script comment line 59.