Шпаргалка: Управление дисками в Linux 💡
• Проверка дисков и разделов
• Работа с разделами
• Форматирование разделов
• Монтирование дисков
• Проверка и восстановление файловых систем
• Работа с LVM
• Мониторинг и информация
• Проверка дисков и разделов
lsblk # Показать список дисков и разделов (дерево)
lsblk -f # Показать ФС, UUID и метки
fdisk -l # Подробная инфа о дисках
blkid # UUID и тип ФС
df -h # Использование дисков в человекочитаемом формате
du -sh /путь/* # Размер папок в каталоге
• Работа с разделами
fdisk /dev/sdX # Создать/удалить раздел (MBR)
parted /dev/sdX # Работа с GPT/MBR
cfdisk /dev/sdX # Удобное текстовое меню
Примечание:
sdX
— диск, например
/dev/sda
.
После изменений:
partprobe # Обновить таблицу разделов
• Форматирование разделов
mkfs.ext4 /dev/sdXn # Создать ext4 ФС
mkfs.xfs /dev/sdXn # Создать XFS ФС
mkfs.fat -F32 /dev/sdXn # FAT32
mkswap /dev/sdXn # Создать swap-раздел
sdXn
— раздел, например/dev/sda1
.
• Монтирование дисков
mount /dev/sdXn /mnt # Смонтировать диск
umount /mnt # Отмонтировать диск
mount -a # Примонтировать всё из /etc/fstab
Пример
fstab
записи:
UUID=xxxx-xxxx /mnt/data ext4 defaults 0 2
• Проверка и восстановление файловых систем
fsck /dev/sdXn # Проверить и исправить ошибки ФС
e2fsck -f /dev/sdXn # Принудительная проверка ext4
xfs_repair /dev/sdXn # Восстановление XFS
• Работа с LVM
pvcreate /dev/sdX # Создать физ. том
vgcreate vg_name /dev/sdX # Создать группу томов
lvcreate -L 10G -n lv_name vg_name # Создать лог. том
lvextend -L +5G /dev/vg_name/lv_name # Увеличить размер
resize2fs /dev/vg_name/lv_name # Расширить ФС ext4
• Мониторинг и информация
iostat # Статистика ввода/вывода (пакет sysstat)
df -Th # Использование дисков + тип ФС
dmesg | grep -i error # Ошибки дисков
smartctl -a /dev/sdX # SMART-дата диска (пакет smartmontools)
👍4❤1
Процессы в Linux - Всё, что нужно знать :
Что такое процесс?
Процесс - это экземпляр выполняемой программы. Он содержит код программы и её активность. В зависимости от операционной системы (ОС), процесс может состоять из нескольких потоков выполнения, которые выполняют инструкции параллельно.
https://reliabilityengineering.substack.com/p/everything-you-need-to-know-about
Что такое процесс?
Процесс - это экземпляр выполняемой программы. Он содержит код программы и её активность. В зависимости от операционной системы (ОС), процесс может состоять из нескольких потоков выполнения, которые выполняют инструкции параллельно.
https://reliabilityengineering.substack.com/p/everything-you-need-to-know-about
❤1
❤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
👍7❤2
Утилиты linux
rsync
Примеры:
ss
Примеры:
ps
mpstat
Показывает статистику загрузки процессора. Команды:
free
Показывает потребление ОЗУ на текущий момент:
top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу
dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
netstat
rsync
-v
— выводит подробную информацию о процессе копирования;[-a]
— сохраняет все атрибуты оригинальных файлов;-u
— не перезаписывать более новые файлы;-l
— копирует символьные ссылки;-L
— копирует содержимое ссылок;-p
— сохраняет права для файлов;-t
— сохраняет время модификации;-e
— использовать другой транспорт, например, ssh;[-z]
— cжимает файлы перед передачей;—recursive
— перебирать директории рекурсивно;—exclude
— Исключить файлы по шаблону;Примеры:
rsync -avz skillproject/data/
. — из подкаталога в текущий каталогrsync -avz skillproject/data/ aaa/
— из подпапки в подпапку aaa/rsync -avz skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/
— передача на удаленный серверrsync -avze ssh skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/
— то же самое м явным указанием sshss
-l или —listening
— посмотреть только прослушиваемые порты;-p или —program
— показать имя программы и ее PID;-t или —tcp
— показать tcp порты;-u
или —udp
показать udp порты;-n
или —numeric
показывать ip адреса в числовом виде.Примеры:
ss -tlpn
— проверить все прослушивающие tcp-портыss -tulpn | grep :80
— показать все процессы, работающие на 80-м портуps
ps -e
— показать все процессыps -ef
— показать подробную информацию о каждом процессеps -ef | grep phantom
— найти все процессы с именем phantom
mpstat
Показывает статистику загрузки процессора. Команды:
mpstat
— показывает общую информациюmpstat -P ALL
— по каждому ядруfree
Показывает потребление ОЗУ на текущий момент:
free -h
— показывает информацию в гигабайтах (более человеко читаемо, чем в байтах)top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу
dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
dpkg -s <packname>
— проверить, установлен ли пакетdpkg -l
— список всех пакетовdpkg -l | grep apache2
— проверить, установлен ли конкретный пакетdpkg -i <package.deb>
— установить пакетnetstat
netstat -pnltu
— посмотреть список используемых портов👍3❤🔥1❤1🔥1👏1