Ich hatte in letzter Zeit das Problem, dass ich nicht genau wusste, was den Speicherplatz auf meinem RaspberryPi verschlingt. :)
Der Klassiker “df-h” zeigen nur an, auf welcher Partition wieviel Platz ist.
Diesen Info hatte ich mir täglich via Mail zusenden lassen, doch bringt das bei der Suche nicht viel.
Zusatzinfo: Ich nutze auf meinem RapsberryPi Debian 8 / Jessie ohne GUI. Das System läuft auf einem 4GB USB Stick (die SD-Card im Raspberry benutze ich nur zum booten)
Auf der Suche nach einer Lösung habe ich mir mehrere Tools angeschaut und mir letztendlich eine nette Lösung aus mehreren Tools und Befehlen gebaut. Damit sehe ich relativ schnell, wo in welchen Ordnern die Partition den Speicher verschlingt.
Wir brauchen “durep” und “mpack”. Durep für den Disk Report und mpack, um später den HTML Report als Anhang via Mail zu versenden.
sudo apt-get install durep mpack
Zusätzlich brauchen wir das Tool rfcdiff, das ihr hier herunterladen und auf dem Raspberry entpacken könnt. rfcdiff erstellt den Differenz-HTML-Report der Log-Dateien vom Vortag und von heute.
Das Ergebnis sieht so aus:
Was machen die Scripte?
Die Datei vom Vortag benenne ich um als diskSpaceWatchPreviousDay.log.
Dann wird danach eine diskSpaceWatch.log erstellen.
Diese beiden Textdateien vergleiche ich dann via rfcdiff und lasse mir die html Ausgabe via Mail schicken.
Anschließend archiviere ich die HTML Datei unter /temp/rfcdiff/
Die Scripte
diskSpaceWatchNeu.sh
!/bin/bash DATE=$(date +%Y-%m-%d) # DiskSpaceWatch.log vom Vortag umbenennen: mv /home/pi/scripts/diskSpaceWatch.log /home/pi/scripts/diskSpaceWatchPreviousDay.log df -h >> /home/pi/scripts/diskSpaceWatch.log # entferne tmpfs und devtmpfs sed -i "/\b\(tmpfs\|devtmpfs\|mmcblk0p1\|udev\)\b/d" /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log # DSW v2 df -h >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log echo "" >> /home/pi/scripts/diskSpaceWatch.log # DSW v3 durep -td 4 -hs 20M / -ep 'media/|lib/' -sd >> /home/pi/scripts/diskSpaceWatch.log
diskSpaceWatchDifference.sh
#!/bin/bash DATE=$(date +%Y-%m-%d) # rfcdiff HTML Diff cd /home/pi/scripts/ /home/pi/scripts/rfcdiff-1.45/rfcdiff --html /home/pi/scripts/diskSpaceWatch.log /home/pi/scripts/diskSpaceWatchPreviousDay.log mpack -s "Speicherdifferenz rfcdiff HTML Raspberry" /home/pi/scripts/diskSpaceWatchPreviousDay-from-.diff.html deine.mail@gmail.com sleep 5 # Archiviere die HTML Diffs mv /home/pi/scripts/diskSpaceWatchPreviousDay-from-.diff.html /home/pi/temp/rfcdiff/$DATE.diskSpaceWatchPreviousDay-from-.diff.html
Beide Scripte noch ausführbar machen ;)
Wie sieht mein Cronjob aus?
Im Cronjob rufe ich zuerst die diskSpaceWatchNeu.sh und danach diskSpaceWatchDifference.sh auf (5min habe ich dazwischen Zeit gelassen).