2016-06-17 4 views
0

Ich versuche ein Skript zu schreiben, um zu überprüfen, ob ein Verzeichnis existiert und es die passende Dateigröße hat. Bis jetzt habe ich es geschafft, einen Verzeichnischeck zu bekommen, aber ich hatte nicht viel Glück beim Überprüfen der Größe.Linux - Directory Check

BASEDIR benötigt 8GB und 4GB WORKDIR

#!/bin/sh 
BASEDIR=/opt/app 
WORKDIR=$BASEDIR/program/work 

if [[ -d "${BASEDIR}" && ! -L "${BASEDIR}" ]] ; then 
    echo "Confirmed ${BASEDIR}" 
fi 

if [[ -d "${WORKDIR}" && ! -L "${WORKDIR}" ]] ; then 
    echo "Confirmed ${WORKDIR}" 
fi 

R,

+0

Überprüfen Sie die man-Seite für 'du'. – 123

+0

Bessere Formulierung wäre "verfügbarer Speicherplatz" anstelle von "Dateigröße", wenn Sie ein "ls -l $ WORKDIR" tun, wird es Ihnen eine Größe zeigen, die groß sein kann, wenn dort viele Dateien sind/waren –

+0

@Ricardo A: Sie müssen die Leute wissen lassen, ob die bereitgestellten Lösungen funktionieren oder nicht, um Ihnen zu helfen und anschließend das Thema zu schließen – Inian

Antwort

0

Ich nehme an, Sie 8G (4G), um sicherzustellen, sollen seine freien Speicherplatz im gewählten Verzeichnis verfügbar ist, nicht, dass es ist bereits mit 8G (4G) Dateien gefüllt. (Siehe Inians Antwort für den letzteren Fall).

Sie können df verwenden, um den verfügbaren Speicherplatz für einen bestimmten Ordner zurückzugeben.

avail = `df "$BASEDIR" -k --output=avail | tail -1` 
if (($avail >= 8*1024*1024)); then echo "Good"; else echo "Not Good"; fi