Админские угодья
1.46K subscribers
462 photos
40 videos
223 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Шпаргалка по командам Docker и Docker-compose
Программа проверки истечения срока действия SSL-сертификатов

ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.

https://github.com/Matty9191/ssl-cert-check
👍21
Основы мониторинга (обзор Prometheus и Grafana)

Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana

https://habr.com/ru/post/709204/
2
Как отлаживать bash-script-ы по шагам

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам

#!/bin/bash

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3



Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.

Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.

Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды

команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C

переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.

# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3

echo "Hello World";
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly

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

https://github.com/lirantal/dockly
🔥3👍1
Dockerfile - файл содержащий инструкции для создания образа контейнера

FROM - задаёт базовый (родительский) образ
LABEL - описывает метаданные. Например — сведения о том, кто создал и поддерживает образ
ENV - устанавливает постоянные переменные среды
RUN - выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетов
COPY - копирует в контейнер файлы и папки
ADD - копирует файлы и папки в контейнер, может распаковывать архив на лету
CMD - описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD(запускается оболочка /bin/sh)
USER - указывает от какого пользователя всё будет работать
WORKDIR - задаёт рабочую директорию для следующей инструкции
ARG - задаёт переменные для передачи Docker во время сборки образа
ENTRYPOINT - предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяются
EXPOSE - указывает на необходимость открыть порт, сам порт не открывает
VOLUME - создаёт точку монтирования для работы с постоянным хранилищем
MAINTAINER - информация об авторе имя и <email>
👍31
This media is not supported in your browser
VIEW IN TELEGRAM
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться.

Rus https://habr.com/ru/post/711968/

Eng https://dev.to/lissy93/cli-tools-you-cant-live-without-57f6#utils
Шпаргалка по оконным функциям в SQL
2
Регулярное выражение

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

https://github.com/zevilz/learn-regex/blob/master/translations/README-ru.md
👍2
Bash-скрипт для выполнения дампа всех баз данных MySQL, используемых на сервере

1- Для запуска скрипта необходимо дать права на исполнение скрипту командой chmod +x dump_all_databases.sh.
2- Запустить скрипт выполнив одну из следующих команд:

./dump_all_databases.sh
sh dump_all_databases.sh
bash dump_all_databases.sh


3- Дождататься, когда выполниться процесс. Дампы будут сохранены в формате YYYYMMDD.name_db.sql.

#!/usr/bin/env bash

databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
Совет для Linux💡

Получайте уведомления, когда ваши команды в терминале завершатся!


$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"


Замените apt update на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools:


$ sudo apt install inotify-tools
👍2
Полезные команды Linux. Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )

# yum list
Вывести листинг пакетов, установленных в системе

# yum clean headers
Удалить все заголовки файлов, которые система использует для разрешения зависимостей

# yum clean [package]
Очистить rpm-кэш, удалив закачанные пакеты

# yum search [package]
Найти пакет в репозитории

# yum clean all
Очистить rpm-кэш, удалив закачанные пакеты и заголовки

# yum -y install [ package ]
Скачать и установить пакет

# yum update [package]
обновить пакет

# yum -y update
Обновить все пакеты, установленные в систему

# yum localinstall [ package.rpm ]
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории

# yum remove [package]
Удалить пакет
2
Сохраняем вывода команды Top в файл

Поскольку я не использовал опцию delay, приведенная ниже команда top перенаправит вывод команды top за одну итерацию в файл.
top -b -n 1 > /home/i_odmin/backup/output.txt

Сохранение вывода команды top с более чем одной итерацией из 5 итераций
Обычно программа работает непрерывно с задержкой в 2 секунды, и вы можете изменить это значение, добавив в верхнюю команду значение ‘-d’, как показано ниже:
top -n 5 -d 4 -b >/backup/output_1.txt

Как захватить вывод команды top в файл каждые 5 минут в течение часа
Система создает отдельный файл каждые 5 минут, который поможет вам определить список процессов, которые потребляли больше CPU и памяти в системе.
Добавляем следующий cronjob, который будет выполняться с 5 до 6 утра каждые 5 минут в течение часа.
Где
-n : Задает максимальное количество итераций.
-b : Работа в пакетном режиме (Запуск команды top в пакетном режиме для перенаправления вывода в другие программы или в файл)
-d : Интервал задержки (Задает задержку между обновлениями экрана)
0-59/5 5 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt

Собраем вывод в один файл, используйте следующий cronjob
Cronjob будет выполняться с 9 до 10 утра каждые 5 минут в течение часа и добавлять результаты в один файл.
0-59/5 9 * * * top -b -n5 -d 5 >>/home/i_odmin/backup/output.txt

Записываем вывод команды top в файл каждые 5 минут в течение получаса
Добавляем следующий cronjob, который будет запускаться каждые 5 минут с 13:30 до 14:00 в течение получаса.
30-59/5 13 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt
Шпаргалка по работе с Tmux
👍1
База в ms sql застряла в режиме восстановления или in recovery

Наверное, одна из самых частых ошибок в Management Studio (SSMS) с которой сталкиваются новички, так это когда база застревает в режиме «Восстановления» или в eng версиях MS SQL «In recovery».

https://telegra.ph/Baza-v-ms-sql-zastryala-v-rezhime-vosstanovleniya-ili-in-recovery-09-16
Как отлаживать bash-script-ы по шагам

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам

#!/bin/bash

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3



Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.

Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.

Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды

команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C

переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.

# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3

echo "Hello World";
2