Ett försök till principlösning med Mac OS X som OS och bash som shell.
df -h ger för detta system
Filesystem Size Used Avail Capacity Mounted on
/dev/disk0s3 56G 36G 20G 64% /
devfs 96K 96K 0B 100% /dev
fdesc 1.0K 1.0K 0B 100% /dev
<volfs> 512K 512K 0B 100% /.vol
automount -nsl [126] 0B 0B 0B 100% /Network
automount -fstab [160] 0B 0B 0B 100% /automount/Servers
automount -static [160] 0B 0B 0B 100% /automount/static
Mitt princip script blir då
#!/bin/bash
WARNING_LEVEL=8 # 8 GB is the level that triggers a warning
DISK_PAT='disk0s3' # Unique "disk line" identifier in the df output
FREE_SPACE=$(df -h | grep $DISK_PAT | awk '{print $4}' | sed s/G//)
if (( $FREE_SPACE < $WARNING_LEVEL ))
then
echo "Send Mail with status warning "$FREE_SPACE "GB free space"
else
echo "Send Mail with status ok "$FREE_SPACE "GB free space"
fi
exit 0
Anmärkning: Att använda "sed s/G//" för att plocka bort G ur resultatet för Avail-värdet är inte riktigt bra eftersom det kan stå t.ex. K där och då fungera inte if satsen längre. I Mac OS X kan man i detta fall köra df -g och få resultatet i GB utan enhet och därmed kunna skippa detta sed-steg för att ta bort enheten.