Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Скрипт для проверки свободного места на дисках (bash) : Linux

23.11.2024 8:30


03.03.2023 11:11
Код:
#!/bin/bash

threshold=50

filesystems=$(df -h | grep '/dev/sd' | grep -v '/boot' | awk '{print $6}')

for fs in $filesystems; do
  free_space=$(df -BG $fs | awk '{print $4}' | tail -n 1 | sed 's/G//')
  free_space=$(echo $free_space | awk -F. '{print $1}')
  if [ $free_space -lt $threshold ]; then
    echo "WARNING: $fs has only $free_space GB of free space remaining!"
  fi
done
пролистываем список файловых систем (выбираю /dev/sd, если есть рейды - проверяйте), убираем /boot, где места мало по определению... для проверки места использую df -BG, чтобы выводило только в гигабайтах.
Вместо echo буду использовать Telegram, но тут уже по вкусу...
03.03.2023 11:14
Код:
#!/bin/bash

# список дисковых устройств для проверки места на диске
disk_list="/dev/sda1 /dev/sdb1 /dev/sdc1"

# проходим по списку дисковых устройств
for disk in $disk_list
do
    # проверяем наличие дискового устройства
    if [ ! -b $disk ]; then
        echo "Disk $disk not found"
        continue
    fi
    
    # получаем информацию о дисковом устройстве
    fs_info=$(df -h $disk | tail -1)
    
    # проверяем, что информация о дисковом устройстве получена
    if [ -z "$fs_info" ]; then
        echo "No disk space information for $disk"
        continue
    fi
    
    # получаем размер диска, свободное и занятое место в гигабайтах
    disk_size=$(echo $fs_info | awk '{print $2}')
    disk_free=$(echo $fs_info | awk '{print $4}')
    disk_used=$(echo $fs_info | awk '{print $3}')
    
    # выводим информацию о свободном месте на диске
    echo "Disk $disk: size=$disk_size, used=$disk_used, free=$disk_free"
done

exit 0
Часовой пояс GMT +3, время: 08:30.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.