Шпаргалка по RAID
Информация о RAID
Сборка RAID
при получении ответа mdadm: Unrecognised md component device -
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
nano /etc/fstab, прописать
Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
* где
Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.Информация о RAID
cat /proc/mdstat - состояние всех RAIDmdadm -D /dev/md0 - подробная инфа о конкретном RAIDlsblk - список дисков с разделами, местом, типомdf -hT - свободное место, тип файловой системы, точки монтированияСборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)при получении ответа mdadm: Unrecognised md component device -
/dev/sdb значит, что диск не использовался для RAID, продолжаемmdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0mount /dev/md0 /mnt - разово примонтировать md0 к /mntnano /etc/fstab, прописать
/dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузкиВосстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный дискmdadm /dev/md0 —add /dev/sde - добавить новый диск в массивСтатус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобратьЗапасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массивуДобавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sdemdadm -G /dev/md0 —raid-devices=3 - расширяем RAID* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadmУдаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
umount /mnt* где
 /mnt — каталог монтирования нашего RAID.mdadm -S /dev/md0Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd❤3👍2🔥1
  Media is too big
    VIEW IN TELEGRAM
  Цикл for в терминале bash
Очень часто вам необходимо исполнить одну и ту-же команду на разных файлах. К примеру вы хотите сконвертировать каждый JPEG файл в аналогичный PNG (или наоборот).
Почти во всех терминалах есть возможность работать с циклами, и в данном видео я описываю работу с циклом «for» в терминале bash.
истончик
Очень часто вам необходимо исполнить одну и ту-же команду на разных файлах. К примеру вы хотите сконвертировать каждый JPEG файл в аналогичный PNG (или наоборот).
Почти во всех терминалах есть возможность работать с циклами, и в данном видео я описываю работу с циклом «for» в терминале bash.
истончик
❤2👍1
  Команды мониторинга и отладки
top     отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)ps -eafw     отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)ps -e -o pid,args --forest     вывести PID’ы и процессы в виде дереваpstree     отобразить дерево процессовkill -9 98989     kill -KILL 98989
 «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)kill -TERM 98989     Корректно завершить процесс с PID 98989kill -1 98989
kill -HUP 98989     заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989     отобразить список файлов, открытых процессом с PID 98989lsof /home/user1     отобразить список открытых файлов из директории /home/user1strace -c ls > /dev/null     вывести список системных вызовов, созданных и полученных процессом lsstrace -f -e open ls > /dev/null     вывести вызовы бибилотекwatch -n1 ‘cat /proc/interrupts’     отображать прерывания в режиме реального времениlast reboot     отобразить историю перезагрузок системыlast user1     отобразить историю регистрации пользователя user1 в системе и время его нахождения в нейlsmod     вывести загруженные модули ядраfree -m     показать состояние оперативной памяти в мегабайтахsmartctl -A /dev/hda     контроль состояния жёсткого диска /dev/hda через SMARTsmartctl -i /dev/hda     проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg     вывести десять последних записей из журнала загрузки ядраtail /var/log/messages     вывести десять последних записей из системного журнала❤1👍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="[email protected]"
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
  Шпаргалка по ip
Утилита
🟢 Основные команды
1. Посмотреть информацию об интерфейсах:
   
Отображает информацию обо всех интерфейсах, включая IP-адреса.
2. Посмотреть информацию только об одном интерфейсе:
   
Показывает информацию только для интерфейса
3. Активировать интерфейс:
   
Включает интерфейс
4. Отключить интерфейс:
   
Отключает интерфейс
🟢 Конфигурация IP-адресов
5. Назначить IP-адрес интерфейсу:
   
Назначает IP-адрес
6. Удалить IP-адрес с интерфейса:
   
Удаляет IP-адрес
🟢 Маршруты и таблицы маршрутизации
7. Просмотр маршрутов:
   
Показывает текущие маршруты в системе.
8. Добавить маршрут:
   
Добавляет маршрут к сети
9. Удалить маршрут:
   
Удаляет маршрут к сети
🟢 Прочие функции
10. Посмотреть статистику интерфейсов:
    
Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).
11. Назначить MAC-адрес интерфейсу:
    
Устанавливает MAC-адрес для интерфейса
12. Показать состояние интерфейсов:
    
Отображает состояние всех интерфейсов, включая их статус (up/down).
13. Показать статистику маршрутизации:
    
Показывает статистику по маршрутам, включая количество использованных пакетов.
-
- Использование
Дополнительную информацию можно получить с помощью команды:
Утилита
ip — это мощный инструмент для управления сетевыми интерфейсами и маршрутизацией в Linux, который заменяет старую команду ifconfig. 1. Посмотреть информацию об интерфейсах:
ip addr
Отображает информацию обо всех интерфейсах, включая IP-адреса.
2. Посмотреть информацию только об одном интерфейсе:
ip addr show eth0
Показывает информацию только для интерфейса
eth0.3. Активировать интерфейс:
ip link set eth0 up
Включает интерфейс
eth0.4. Отключить интерфейс:
ip link set eth0 down
Отключает интерфейс
eth0.5. Назначить IP-адрес интерфейсу:
ip addr add 192.168.1.10/24 dev eth0
Назначает IP-адрес
192.168.1.10 с маской 255.255.255.0 (или /24`) интерфейсу `eth0.6. Удалить IP-адрес с интерфейса:
ip addr del 192.168.1.10/24 dev eth0
Удаляет IP-адрес
192.168.1.10 с интерфейса eth0.7. Просмотр маршрутов:
ip route
Показывает текущие маршруты в системе.
8. Добавить маршрут:
ip route add 192.168.2.0/24 via 192.168.1.1
Добавляет маршрут к сети
192.168.2.0/24 через шлюз 192.168.1.1.9. Удалить маршрут:
ip route del 192.168.2.0/24
Удаляет маршрут к сети
192.168.2.0/24.10. Посмотреть статистику интерфейсов:
ip -s link
Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).
11. Назначить MAC-адрес интерфейсу:
ip link set dev eth0 address 00:11:22:33:44:55
Устанавливает MAC-адрес для интерфейса
eth0.12. Показать состояние интерфейсов:
ip link show
Отображает состояние всех интерфейсов, включая их статус (up/down).
13. Показать статистику маршрутизации:
ip -s route
Показывает статистику по маршрутам, включая количество использованных пакетов.
-
ip заменяет старые команды, такие как ifconfig, route, и netstat, предоставляя более гибкий и мощный интерфейс для управления сетевыми настройками.- Использование
ip вместо ifconfig рекомендуется в большинстве современных Linux-дистрибутивов, так как это более современная и функциональная утилита.Дополнительную информацию можно получить с помощью команды:
man ip
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤3👍1
  This media is not supported in your browser
    VIEW IN TELEGRAM
  SRE Roadmap
Дорожная карта, чтобы стать SRE (концепции > инструменты)
https://github.com/teivah/sre-roadmap
Дорожная карта, чтобы стать SRE (концепции > инструменты)
https://github.com/teivah/sre-roadmap
❤1
  ❤1
  Как работает сетевая связка контейнеров ?
Большинство установок Docker и кластеров Kubernetes используют одинаковую сетевую схему с мостом (bridge).
Лучший способ понять, как это работает? Воспроизвести такую схему с нуля, используя только стандартные команды Linux.
https://labs.iximiuz.com/tutorials/container-networking-from-scratch
Большинство установок Docker и кластеров Kubernetes используют одинаковую сетевую схему с мостом (bridge).
Лучший способ понять, как это работает? Воспроизвести такую схему с нуля, используя только стандартные команды Linux.
https://labs.iximiuz.com/tutorials/container-networking-from-scratch
❤2👍2
  Kubernetes Events - новостная лента вашего кластера
Kubernetes Events - это ресурсы типа Event в Kubernetes, которые информируют вас о том, что происходит в вашем кластере. Это похоже на новостную ленту для компонентов кластера: они фиксируют всё - от запуска Pod'ов до ошибок в работе контроллеров.
Каждое событие в Kubernetes содержит:
*
*
*
*
*
📌 Как посмотреть события:
Или для конкретного Pod'а:
Kubernetes сам удаляет события через час. Это значит, что они не предназначены для долговременного хранения.
📌 Хранение событий
Если вам нужно сохранить события дольше, можно:
* Настроить аудит в Kubernetes
* Использовать внешние системы логирования (например, Elasticsearch + Fluentd)
* Подключить event exporters
https://decisivedevops.com/kubernetes-events-news-feed-of-your-kubernetes-cluster-826e08892d7a/
Kubernetes Events - это ресурсы типа Event в Kubernetes, которые информируют вас о том, что происходит в вашем кластере. Это похоже на новостную ленту для компонентов кластера: они фиксируют всё - от запуска Pod'ов до ошибок в работе контроллеров.
Каждое событие в Kubernetes содержит:
*
message: краткое описание произошедшего*
reason: код причины события*
type: Normal или Warning*
involvedObject: объект, к которому относится событие (например, Pod или Node)*
firstTimestamp, lastTimestamp, count: время и количество повторений📌 Как посмотреть события:
kubectl get events
Или для конкретного Pod'а:
kubectl describe pod <pod-name>
Kubernetes сам удаляет события через час. Это значит, что они не предназначены для долговременного хранения.
📌 Хранение событий
Если вам нужно сохранить события дольше, можно:
* Настроить аудит в Kubernetes
* Использовать внешние системы логирования (например, Elasticsearch + Fluentd)
* Подключить event exporters
https://decisivedevops.com/kubernetes-events-news-feed-of-your-kubernetes-cluster-826e08892d7a/
❤1
  Grep в Linux как инструмент для администрирования
Примеры использования.
grep — утилита командной строки, используется для поиска и фильтрации текста в файлах, на основе шаблона, который (шаблон) может быть регулярным выражением.Примеры использования.
grep iodmingrep iodmin file.txt поиск iodmin в файле file.txt, с выводом полностью совпавшей строкойgrep -o iodmin file.txt поиск iodmin в файле file.txt и вывод только совпавшего куска строкиgrep -i iodmin file.txt игнорирование регистра при поискеgrep -bn iodmin file.txt показать строку (-n) и столбец (-b), где был найден iodmingrep -v iodmin file.txt инверсия поиска (найдет все строки, которые не совпадают с шаблоном iodmin)grep -A 3 iodmin file.txt вывод дополнительных трех строк, после совпавшейgrep -B 3 iodmin file.txt вывод дополнительных трех строк, перед совпавшейgrep -C 3 iodmin file.txt вывод три дополнительные строки перед и после совпавшейgrep -r iodmin $HOME рекурсивный поиск по директории $HOME и всем вложеннымgrep -c iodmin file.txt подсчет совпаденийgrep -L iodmin *.txt вывести список txt-файлов, которые не содержат iodmingrep -l iodmin *.txt вывести список txt-файлов, которые содержат iodmingrep -w iodmin file.txt совпадение только с полным словом iodmingrep -f iodmins.txt file.txt поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкойgrep -I iodmin file.txt игнорирование бинарных файловgrep -v -f file2 file1 > file3 вывод строк, которые есть в file1 и нет в file2grep -in -e 'python' `find -type f` рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпаденийgrep -inc -e 'test' find -type f | grep -v :0 рекурсивный поиск файлов, содержащих слово python с выводом количества совпаденийgrep . *.py вывод содержимого всех py-файлов, предваряя каждую строку именем файлаgrep "Http404" apps/**/*.py рекурсивный поиск упоминаний Http404 в директории apps в py-файлах❤4
  Media is too big
    VIEW IN TELEGRAM
  Настройки RADIUS клиента в Mikrotik RouterOS
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
👍3❤1
  Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
Установка своих DNS серверов и отключение получения их по DHCP
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
Изменение количества строк системного лога
Очистка системного лога (оставляет сообщение о смене настроек лога)
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
Отключение ненужных служб доступа (web тоже отключается, осторожно)
Фикс MTU (нужен редко, но метко)
Заблокировать доступ к WiFi по MAC-адресу
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
Настройка пароля и безопасности WiFi на default профиль
Включение пробросов портов SSH
Установки имени устройства
/system identity set name=MyHomeMikrotikУстановка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=noНастройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru [email protected] password=example-pass port=587 start-tls=yes [email protected]Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes Изменение количества строк системного лога
/system logging action set memory memory-lines=10000Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yesЗаблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1 Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tagНастройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpasswordВключение пробросов портов SSH
/ip ssh set forwarding-enabled=both❤5