Краткая шпаргалка по использованию 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
⚙️Ресурс, описывающий самые популярные инструменты DevOps
Здесь описывается Docker, GitHub Actions, k8s, Go, Helm, Prometheus, ArgoCD, Jenkins.
Помимо инструментов, внимание здесь уделяется таким методологиям как GitOps, DevSecOps, описываются базовые команды Linux, основы написания Bash-скриптов и много всего другого.
https://devops.pradumnasaraf.dev/
Здесь описывается Docker, GitHub Actions, k8s, Go, Helm, Prometheus, ArgoCD, Jenkins.
Помимо инструментов, внимание здесь уделяется таким методологиям как GitOps, DevSecOps, описываются базовые команды Linux, основы написания Bash-скриптов и много всего другого.
https://devops.pradumnasaraf.dev/
▪️Одним из новых элементов интерфейса Windows 11 стали виджеты или мини-приложения, которые открываются из панели задач. Некоторый пользователи жалуются, что основной процесс
▪️Можно скрыть виджеты в панели задач Windows 11 через реестр:
Или через GPO: Computer Configuration -> Administrative Templates -> Windows Components -> Widgets -> Allow Widgets
▪️Но фактически они все еще будут работать в фоне. Помогает только удаление UWP приложения. Из профиля текущего пользователя:
Если на компьютере несколько пользователей, можно удалить приложение из каждого с помощью командлетов
https://winitpro.ru/index.php/2024/05/29/otklyuchit-vidzhety-windows-11/
widgets.exe
и дочерние процессы msedgewebwebview2.ex
e вызывают повышенную нагрузку на CPU и сильно расходуют RAM даже при простое. ▪️Можно скрыть виджеты в панели задач Windows 11 через реестр:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d "0" /f
Или через GPO: Computer Configuration -> Administrative Templates -> Windows Components -> Widgets -> Allow Widgets
▪️Но фактически они все еще будут работать в фоне. Помогает только удаление UWP приложения. Из профиля текущего пользователя:
winget uninstall "windows web experience pack"
Если на компьютере несколько пользователей, можно удалить приложение из каждого с помощью командлетов
Remove-AppxPackage
и Remove-AppxProvisionedPackage
.https://winitpro.ru/index.php/2024/05/29/otklyuchit-vidzhety-windows-11/
👍2
There are only 12 binaries in Talos Linux
Наверно многие уже слышали про Talos Linux - дистрибутив который может запускать только Kubernetes? Так какой минимальный набор инструментов и исполняемых файлов необходим?
https://www.siderolabs.com/blog/there-are-only-12-binaries-in-talos-linux/
Наверно многие уже слышали про Talos Linux - дистрибутив который может запускать только Kubernetes? Так какой минимальный набор инструментов и исполняемых файлов необходим?
https://www.siderolabs.com/blog/there-are-only-12-binaries-in-talos-linux/
👍2
Таймлайн инцидента и вероятная причина проблемы с резолвом доменных имен в зоне RU (сломался DNSSEC)
https://habr.com/ru/news/790264/
https://habr.com/ru/news/790264/
Хабр
Таймлайн инцидента и вероятная причина проблемы с резолвом доменных имен в зоне RU (сломался DNSSEC)
Профильный эксперт опубликовал таймлайн сетевого инцидента с резолвом доменных имен в зоне RU (сломался DNSSEC). Источники СМИ назвали вероятной причиной этой проблемы «действия администратора зоны,...
❤2