Совет для Linux💡
Получайте уведомления, когда ваши команды в терминале завершатся!
Замените
Получайте уведомления, когда ваши команды в терминале завершатся!
$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"
Замените
apt update
на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools
:
$ sudo apt install inotify-tools
Скрипт для мониторинга дискового пространства в Linux
Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).
Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.
Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).
Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.
#!/bin/bash
# Set the maximum allowed disk space usage percentage
MAX=90
# Set the email address to receive alerts
EMAIL=user@example.com
# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1
# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign
if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi
Горячие клавиши терминала Linux
Терминал Linux — один из самых мощных инструментов на вооружении данного семейства операционных систем. Для неподготовленного пользователя, однако, вряд ли покажется чем-то удобным в использовании: горячие клавиши, к которым мы привыкли в Windows, часто не работают или работают не так, как мы от них ждем. В результате, первое знакомство с терминалом, как правило, бывает неприятным.
В данной статье мы рассмотрим комбинации клавиш, которые сильно упростят жизнь всем, кто работает с терминалом.
https://telegra.ph/Goryachie-klavishi-terminala-Linux-09-21
Терминал Linux — один из самых мощных инструментов на вооружении данного семейства операционных систем. Для неподготовленного пользователя, однако, вряд ли покажется чем-то удобным в использовании: горячие клавиши, к которым мы привыкли в Windows, часто не работают или работают не так, как мы от них ждем. В результате, первое знакомство с терминалом, как правило, бывает неприятным.
В данной статье мы рассмотрим комбинации клавиш, которые сильно упростят жизнь всем, кто работает с терминалом.
https://telegra.ph/Goryachie-klavishi-terminala-Linux-09-21
Media is too big
VIEW IN TELEGRAM
Управление и настройка сети в Linux с помощью утилиты nmcli
Вы можете использовать различные инструменты для настройки сетевых подключений, как графических так и консольно командных, графические удобны своей простотой, а командные удобны тем что их можно использовать в различных сценариях, в этом видео вы познакомитесь с консольной утилитой nmcli (Network Manager Command Line Interface)
Команды тут
https://m.youtube.com/watch?v=hZl9B-H6-Rc
Вы можете использовать различные инструменты для настройки сетевых подключений, как графических так и консольно командных, графические удобны своей простотой, а командные удобны тем что их можно использовать в различных сценариях, в этом видео вы познакомитесь с консольной утилитой nmcli (Network Manager Command Line Interface)
Команды тут
https://m.youtube.com/watch?v=hZl9B-H6-Rc
Краткая шпаргалка по использованию tmux
Список доступных сессий можно посмотреть командой:
Подключение к сессии:
Сессиям можно давать осмысленные имена и запускать в них фоновые задачи:
# создать фоновую сессию
# подсоединиться к сессии
# прибить сессию
Это иногда бывает удобно в каких-нибудь скриптах. Характерно, что в screen подобный функционал тоже заявлен, но последний раз, когда я проверял, он был сломан.
Интересно также, что в отличие от screen, в tmux нет возможности работать с последовательными портами. Но если вы решите полностью переходить на tmux, то для этой задачи можете воспользоваться утилитой cu:
Ctr+B, ?
Показать все доступные хоткеиCtr+B, C
Создать окноCtr+B, N
Следующее окноCtr+B, P
Предыдущее окноCtr+B, [0-9]
Перейти к окну с данным номеромCtr+B, X
Закрыть окноCtr+B, %
Горизонтальное разделениеCtr+B, "
Вертикальное разделениеCtr+B,
стрелочки Переход между разделениямиCtr+B,
запятая Переименовать окноCtr+B, W
Список всех окон с переключениемCtr+B, Fn+вверх Скролинг
, можно использовать точпадCtr+B, $
Переименовать текущую сессиюCtr+B, D Detach
, отсоединиться от сессииСписок доступных сессий можно посмотреть командой:
tmux ls
Подключение к сессии:
tmux attach -t 0
Сессиям можно давать осмысленные имена и запускать в них фоновые задачи:
# создать фоновую сессию
tmux new-session -d -s background-task 'watch date'
# подсоединиться к сессии
tmux attach -t background-task
# прибить сессию
tmux kill-session -t background-task
Это иногда бывает удобно в каких-нибудь скриптах. Характерно, что в screen подобный функционал тоже заявлен, но последний раз, когда я проверял, он был сломан.
Интересно также, что в отличие от screen, в tmux нет возможности работать с последовательными портами. Но если вы решите полностью переходить на tmux, то для этой задачи можете воспользоваться утилитой cu:
cu -l /dev/tty.usbserial -s 115200
Ioping
Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.
Установка в Debian 11
Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD
Пример выполнения:
https://github.com/koct9i/ioping
Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.
Установка в Debian 11
# apt install ioping
Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD
Пример выполнения:
$ ioping /home
4096 bytes from /home (ext4 /dev/sda5): request=1 time=0.4 ms
4096 bytes from /home (ext4 /dev/sda5): request=2 time=0.8 ms
4096 bytes from /home (ext4 /dev/sda5): request=3 time=0.9 ms
4096 bytes from /home (ext4 /dev/sda5): request=4 time=0.3 ms
4096 bytes from /home (ext4 /dev/sda5): request=5 time=0.2 ms
--- . ioping statistics ---
5 requests completed in 4266.5 ms
min/avg/max/mdev = 0.2/0.5/0.9/0.1 ms
https://github.com/koct9i/ioping
Изменение порта для подключения по SSH
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh
Команда nslookup, получение информации от DNS
Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
Изменение порта для подключения по SSH
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh
Внедрение GitOps с помощью ArgoCD: пошаговое руководство
В современном быстро меняющемся мире DevOps управление и развертывание приложений, последовательное и надежное в различных средах, может оказаться сложной задачей. GitOps, парадигма, использующая Git-репозитории в качестве единого источника истины для декларативной инфраструктуры и приложений, предлагает решение. В этом посте я расскажу вам о проекте, в котором мы внедрили GitOps с помощью ArgoCD, подробно опишу цели проекта и шаги, которые мы предприняли для их достижения.
https://medium.com/@kalimitalha8/implementing-gitops-with-argocd-a-step-by-step-guide-b79f723b1a43
В современном быстро меняющемся мире DevOps управление и развертывание приложений, последовательное и надежное в различных средах, может оказаться сложной задачей. GitOps, парадигма, использующая Git-репозитории в качестве единого источника истины для декларативной инфраструктуры и приложений, предлагает решение. В этом посте я расскажу вам о проекте, в котором мы внедрили GitOps с помощью ArgoCD, подробно опишу цели проекта и шаги, которые мы предприняли для их достижения.
https://medium.com/@kalimitalha8/implementing-gitops-with-argocd-a-step-by-step-guide-b79f723b1a43
👍1
Пример Bash-скрипта, который выполняет следующие задачи
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
Описание:
1. Проверка веб-сервера: Используется команда
2. Проверка дискового пространства: С помощью
3. Создание бэкапа: Команда
4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
3. Добавьте скрипт в cron для выполнения на регулярной основе:
Пример для выполнения каждый день в 00:00:
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
#!/bin/bash
# Установки
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
# Проверка доступности веб-сервера
echo "Проверка доступности веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер доступен."
else
echo "Внимание: Веб-сервер недоступен!" | mail -s "Проблема с веб-сервером" $ADMIN_EMAIL
fi
# Проверка дискового пространства
echo "Проверка дискового пространства..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Внимание: Использование дискового пространства превысило $DISK_USAGE_THRESHOLD%!" | mail -s "Проблема с дисковым пространством" $ADMIN_EMAIL
else
echo "Дискового пространства достаточно."
fi
# Создание бэкапа
echo "Создание бэкапа..."
tar -czf $BACKUP_FILE $TARGET_DIRS
if [ $? -eq 0 ]; then
echo "Бэкап успешно создан: $BACKUP_FILE"
else
echo "Ошибка создания бэкапа!" | mail -s "Ошибка создания бэкапа" $ADMIN_EMAIL
fi
# Отправка отчета
echo "Отправка отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Статус веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Использование дискового пространства: $DISK_USAGE%\n"
REPORT+="Расположение бэкапа: $BACKUP_FILE\n"
echo -e $REPORT | mail -s "Ежедневный отчет системы" $ADMIN_EMAIL
echo "Готово."
Описание:
1. Проверка веб-сервера: Используется команда
curl
, чтобы проверить, доступен ли сайт.2. Проверка дискового пространства: С помощью
df
и awk
проверяется использование диска. Если превышен порог (90%), отправляется уведомление.3. Создание бэкапа: Команда
tar
архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS
.4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
mail
.Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
chmod +x /path/to/your/script.sh
3. Добавьте скрипт в cron для выполнения на регулярной основе:
crontab -e
Пример для выполнения каждый день в 00:00:
0 0 * * * /path/to/your/script.sh
❤2
Media is too big
VIEW IN TELEGRAM
Подключение USB сетевого диска к Mikrotik
Настроим Микротик в роли файлового сервера с использованием внешнего usb жесткого диска или любого USB Flash Disk. Для начала нам понадобятся:
1. Модель MIkroTik с USB-портом.
2. USB-диск или USB Flash Disk “флэшка”.
источник
Настроим Микротик в роли файлового сервера с использованием внешнего usb жесткого диска или любого USB Flash Disk. Для начала нам понадобятся:
1. Модель MIkroTik с USB-портом.
2. USB-диск или USB Flash Disk “флэшка”.
источник
👍3
Одноразовые пароли для доступа по ssh через HashiCorp Vault
HashiCorp Vault имеет в своём арсенале SSH secrets engine, который позволяет организовать защищённый доступ к вашим машинам по ssh, через создание клиентских сертификатов и одноразовых паролей. Про последнее – создание одноразовых паролей (OTP) – мы и поговорим в этой статье.
https://habr.com/ru/articles/785052/
HashiCorp Vault имеет в своём арсенале SSH secrets engine, который позволяет организовать защищённый доступ к вашим машинам по ssh, через создание клиентских сертификатов и одноразовых паролей. Про последнее – создание одноразовых паролей (OTP) – мы и поговорим в этой статье.
https://habr.com/ru/articles/785052/
👍2