Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
- Telegram Web
Telegram Web
📌 Шпаргалка по Linux
👍21
Шпаргалка по RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
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 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /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/sde

mdadm -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
2👍2🔥1
📌 Основы сетей: VLAN
3👍3
Media is too big
VIEW IN TELEGRAM
Цикл 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 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -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 через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
1👍1
Пример Bash-скрипта, который выполняет следующие задачи

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
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Шпаргалка по сетевой безопасности
1
Шпаргалка по ip

Утилита 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.

🟢Конфигурация IP-адресов

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
2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
SRE Roadmap

Дорожная карта, чтобы стать SRE (концепции > инструменты)

https://github.com/teivah/sre-roadmap
1
Скрипты для оптимизации работы с помощью Proxmox VE

https://tteck.github.io/Proxmox/
1
📌 Файловая система Linux
🔥31
Как работает сетевая связка контейнеров ?

Большинство установок Docker и кластеров Kubernetes используют одинаковую сетевую схему с мостом (bridge).
Лучший способ понять, как это работает? Воспроизвести такую схему с нуля, используя только стандартные команды Linux.

https://labs.iximiuz.com/tutorials/container-networking-from-scratch
2👍2
Kubernetes Events - новостная лента вашего кластера

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
📌 Топологии сетей
1
Grep в Linux как инструмент для администрирования

grep — утилита командной строки, используется для поиска и фильтрации текста в файлах, на основе шаблона, который (шаблон) может быть регулярным выражением.

Примеры использования.

grep iodmin

grep 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), где был найден iodmin
grep -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-файлов, которые не содержат iodmin
grep -l iodmin *.txt вывести список txt-файлов, которые содержат iodmin
grep -w iodmin file.txt совпадение только с полным словом iodmin
grep -f iodmins.txt file.txt поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкой
grep -I iodmin file.txt игнорирование бинарных файлов
grep -v -f file2 file1 > file3 вывод строк, которые есть в file1 и нет в file2
grep -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-файлах
3
2025/10/18 15:35:11
Back to Top
HTML Embed Code: