Archief - Hulp bij shell scriptje voor total disk space

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

verdeye

Legacy Member
Hoi,

ik ken geen snars van shell scripting, en ik krijg na enkele dagen proberen en sukkelen echt niet de degelijke ouput die ik nodig heb.

Het zit zo ik heb een totaal nodig van het aantal hdd space op mijn server, en het free hdd space. Nu moeten mijn extern gemounte disks hier ook bij.

Dankzij het cmd 'df' kan je alle gegevens van alle mounted disks opvragen, mijn output:

Bestandssysteem 1K-blokken Gebruikt Beschikbr Geb% Aangekoppeld op
/dev/sda1 74692260 24659808 46238304 35% /
varrun 387772 384 387388 1% /var/run
udev 387772 92 387680 1% /dev
/dev/sdb1 244196000 150275388 93920612 62% /media/disk1
/dev/sdd1 488384000 287120632 201263368 59% /media/disk2
/dev/sdc1 488384000 89511660 398872340 19% /media/disk3

Nu heb ik de som van sda1,sdb1,sdd1,sdc1 nodig met als output:
beschikbaar totaal gebruikt totaal

Dit had ik ongeveer al gevonden:
df $1 | tail -1 | awk '{print $2 " " $4}'

Maar zo krijg ik alleen die van mijn sda1 ...

Hulp hulp hulp ...


Cheers,

Coax

Legacy Member
Code:
#!/bin/bash

servertotaal=0
serverbeschikbaar=0
servergebruikt=0

for disk in $(mount | grep /dev/sd | awk '{print $1}'); do
        totaal=$(df $disk | awk '{print $2}' | tail -n 1)
        beschikbaar=$(df $disk | awk '{print $4}' | tail -n 1)
        gebruikt=$(df $disk | awk '{print $3}' | tail -n 1)

        servertotaal=$(($servertotaal + $totaal))
        serverbeschikbaar=$(($serverbeschikbaar + $beschikbaar))
        servergebruikt=$(($servergebruikt + $gebruikt))

done

echo -ne "Totale ruimte server\t: " $servertotaal
echo
echo -ne "Totale ruimte beschkbr\t: " $serverbeschikbaar
echo
echo -ne "Totale ruimte gebruikt\t: " $servergebruikt
echo

Is het zoiets? Het handige aan "df", is dat ge df -h kunt doen. (Human readable) zodat de output in MB, GB, TB ofzo wordt uitgedrukt, ipv in 1-K blokskes. En meestal is dat de informatie die ge wilt weten van uw server als er een partitie is aan het vollopen. Niet hoeveel het totaal is.

Code:
nils@homer:~/tmp$ df -h | grep /dev/sd
/dev/sda1              33G  4,5G   27G  15% /
/dev/sdc1             151G   93G   50G  66% /home
/dev/sdd1             151G  136G  6,9G  96% /home/nils/video
/dev/sdb1             230G   76G  142G  35% /var/backup

verdeye

Legacy Member
Super super, dat is perfect wat ik zocht (wou). Een overzicht per partitie heb ik al. Maar voor mijn samba heb ik eentje nodig om volledige schijfruimte weer te geven.

Bedankt!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan