---
title: "scripthjalp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/linux-bsd/168740-scripthjalp"
topic: "Linux & BSD"
topic_url: "https://www.webforum.nu/amne/linux-bsd"
author: "noratx"
published: "2008-02-05T08:59:34.000Z"
updated: "2008-02-05T12:17:06.000Z"
replies: 1
views: 367
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/linux-bsd/168740-scripthjalp"
---

# scripthjalp

## #1 — noratx, 2008-02-05T08:59Z

Helloj!

Jag har ett mindre problem.
Jag har forsokt att soka pa google, men just nu vet jag inte riktigt vad jag ska leta efter.

Jag behover skapa ett script for att kontrollera och jamfora diskutrymme.
Scriptet skall helt enkelt gora en df (-h) och jamfora med en satt variabel.
Om returvardet fran df ar storre an den satta variabeln, skall den skicka mig ett mail.

Sa det jag helt enkelt behover hjalp med, ar, hur jag skall kunna plocka ut vardet fran df och jamfora med variabeln...

variabel = 8 #(GB)

noratx@beacon # \~ # df -h                                                                                                                      
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a     35G     11G     21G    34%    /
devfs          1.0K    1.0K      0B   100%    /dev

Hur kan jag plocka ut vardet fran Avail och jamfora det med variabeln?
En awk for att plocka ut antar jag, men awk och jag ar inte kompisar, sa jag vet inte riktigt hur jag ska gora.
Och en IF sats for att utfora testen? Men hur den IF satsen ska se ur har jag ingen aning om.

Permalänk: https://www.webforum.nu/p/168740

## #2 — i2n2, 2008-02-05T12:17Z

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.

Permalänk: https://www.webforum.nu/p/2077651

---

Tråden på webben: https://www.webforum.nu/amne/linux-bsd/168740-scripthjalp
