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

По всем вопросам : @Sofiia_artamonova
Download Telegram
Шпаргалка по grep

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


Основные команды:

1. Поиск строки в файле:

grep "строка" имя_файла

Ищет указанную строку в файле.

2. Поиск в нескольких файлах:

grep "строка" файл1 файл2


3. Поиск рекурсивно:

grep -r "строка" /путь/к/каталогу

Ищет строку во всех файлах указанного каталога.

4. Игнорирование регистра:

grep -i "строка" имя_файла


5. Показать номер строки:

grep -n "строка" имя_файла


6. Вывод строк, не содержащих шаблон:

grep -v "строка" имя_файла


7. Подсветка совпадений:

grep --color "строка" имя_файла


8. Подсчитать количество совпадений:

grep -c "строка" имя_файла



Расширенные команды:

1. Использование регулярных выражений:

grep -E "регулярное_выражение" имя_файла

Или:

egrep "регулярное_выражение" имя_файла


2. Поиск с указанием количества строк до и после совпадения:

grep -A 3 -B 2 "строка" имя_файла

-A (after) и -B (before) указывают количество строк, которые будут выведены до и после найденной строки.

3. Поиск только имени файла:

grep -l "строка" *


4. Инвертированный поиск файлов:

grep -L "строка" *

Показывает файлы, в которых не найдено совпадений.



Полезные опции:

- -w — ищет полные слова.
- -o — выводит только совпавшие строки.
- -q — тихий режим, без вывода в терминал, используется для проверки совпадений.

Примеры:

1. Поиск строки "error" в логах:

grep "error" /var/log/syslog


2. Поиск строк с IP-адресами:

grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' имя_файла


3. Поиск строки и запись результата в файл:

grep "pattern" имя_файла > output.txt
👍4🔥2
Шпаргалка по командам 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