Groesste freie Linuxpartition (Bash-Script)
Ich will ein Script erstellen, dass mit Bonnie++ die HD testet. Dazu muss ich die Partition pro Festplatte finden, die am meisten freien Platz hat. In der Regel wird das nicht /tmp sein. Es geht aber nicht nur darum die Partition zu finden, die am meisten Platz hat, sondern auch lokal ist, eine Linux-Partition ist und beschreibbar ist. Ausgangspunkt wird also df sein, aber wie geht es dann weiter? Wie sortiere und filtere ich? Testweise habe ich mal so angefangen, nur /tmp ist eben zu ersetzen. SCRATCHDIR="/tmp" SCRATCHFREI=`df -P "$SCRATCHDIR" | awk '/^([0-9.]+:)?\//{print $4;}'` Al
Am Saturday 11 March 2006 22:11 schrieb Al Bogner:
Ich will ein Script erstellen, dass mit Bonnie++ die HD testet. Dazu muss ich die Partition pro Festplatte finden, die am meisten freien Platz hat. In der Regel wird das nicht /tmp sein. Es geht aber nicht nur darum die Partition zu finden, die am meisten Platz hat, sondern auch lokal ist, eine Linux-Partition ist und beschreibbar ist.
Ausgangspunkt wird also df sein, aber wie geht es dann weiter? Wie sortiere und filtere ich?
Testweise habe ich mal so angefangen, nur /tmp ist eben zu ersetzen. SCRATCHDIR="/tmp" SCRATCHFREI=`df -P "$SCRATCHDIR" | awk '/^([0-9.]+:)?\//{print $4;}'`
# df -lP|sed -n '/^\//s/^\([^ ]*\)[^0-9]*[0-9]*[^0-9]*[0-9]*[^0-9]*\([0-9]*\).*/\2 \1/p'|sort -rn|sed -n '1s/^[0-9]* \(.*\)/\1/p' -- Andreas
Am Samstag, 11. März 2006 22:39 schrieb Andreas Winkelmann:
Am Saturday 11 March 2006 22:11 schrieb Al Bogner:
Ich will ein Script erstellen, dass mit Bonnie++ die HD testet. Dazu muss ich die Partition pro Festplatte finden, die am meisten freien Platz hat. In der Regel wird das nicht /tmp sein. Es geht aber nicht nur darum die Partition zu finden, die am meisten Platz hat, sondern auch lokal ist, eine Linux-Partition ist und beschreibbar ist.
Ausgangspunkt wird also df sein, aber wie geht es dann weiter? Wie sortiere und filtere ich?
Testweise habe ich mal so angefangen, nur /tmp ist eben zu ersetzen. SCRATCHDIR="/tmp" SCRATCHFREI=`df -P "$SCRATCHDIR" | awk '/^([0-9.]+:)?\//{print $4;}'`
# df -lP|sed -n '/^\//s/^\([^ ]*\)[^0-9]*[0-9]*[^0-9]*[0-9]*[^0-9]*\([0-9]*\).*/\2 \1/p'|sort -rn|sed -n '1s/^[0-9]* \(.*\)/\1/p'
Leider nein, das wählt nicht zwingend eine schreibbare Linux-Partition. Al
Am Saturday 11 March 2006 22:55 schrieb Al Bogner:
Ich will ein Script erstellen, dass mit Bonnie++ die HD testet. Dazu muss ich die Partition pro Festplatte finden, die am meisten freien Platz hat. In der Regel wird das nicht /tmp sein. Es geht aber nicht nur darum die Partition zu finden, die am meisten Platz hat, sondern auch lokal ist, eine Linux-Partition ist und beschreibbar ist.
Ausgangspunkt wird also df sein, aber wie geht es dann weiter? Wie sortiere und filtere ich?
Testweise habe ich mal so angefangen, nur /tmp ist eben zu ersetzen. SCRATCHDIR="/tmp" SCRATCHFREI=`df -P "$SCRATCHDIR" | awk '/^([0-9.]+:)?\//{print $4;}'`
# df -lP|sed -n '/^\//s/^\([^ ]*\)[^0-9]*[0-9]*[^0-9]*[0-9]*[^0-9]*\([0-9]*\).*/\2 \1/p'|sort -rn|sed -n '1s/^[0-9]* \(.*\)/\1/p'
Leider nein, das wählt nicht zwingend eine schreibbare Linux-Partition.
Sollte nur ein Ansatz sein. Habe sowas gerade nicht. Wie wäre es mit: # df -lPx type_den_du_nicht_willst|sed...... Oder andersherum: # df -lPt type_den_du_willst|sed ... -- Andreas
Am Samstag, 11. März 2006 23:03 schrieb Andreas Winkelmann:
Leider nein, das wählt nicht zwingend eine schreibbare Linux-Partition.
Sollte nur ein Ansatz sein.
Habe sowas gerade nicht. Wie wäre es mit:
# df -lPx type_den_du_nicht_willst|sed......
Oder andersherum:
# df -lPt type_den_du_willst|sed ...
Nun ja, das ist nicht optimal. Die "erlaubte" Partition kann zB Ext3, Reiser, XFS, etc. sein, eine verbotene wäre zB swap, ntfs, eine BSD-Partition, etc. Eventuell könnte man fdisk abfragen und nur Id 83 zulassen. Die Frage ist mit fdisk wiederum, wie gleiche ich ab.Ist eine Vorselektion mit fdisk sinnvoll oder frage ich mit df zuerst ab und suche dann Schritt für Schritt bis eine erlaubte Partition gefunden ist? Al
Hallo, Am Sat, 11 Mar 2006, Al Bogner schrieb:
Ich will ein Script erstellen, dass mit Bonnie++ die HD testet. Dazu muss ich die Partition pro Festplatte finden, die am meisten freien Platz hat. In der Regel wird das nicht /tmp sein. Es geht aber nicht nur darum die Partition zu finden, die am meisten Platz hat, sondern auch lokal ist, eine Linux-Partition ist und beschreibbar ist.
Ausgangspunkt wird also df sein, aber wie geht es dann weiter? Wie sortiere und filtere ich?
Testweise habe ich mal so angefangen, nur /tmp ist eben zu ersetzen. SCRATCHDIR="/tmp" SCRATCHFREI=`df -P "$SCRATCHDIR" | awk '/^([0-9.]+:)?\//{print $4;}'`
Ich weiss nicht so recht was du machen willst, aber vielleicht hilft dir: gawk 'BEGIN { while( "df -T" | getline) { if(/ext|reiser|xfs|jfs/) { a[$7]=$5; if($5 > max) { idx = $7; max=$5; } } } print max" KB free ("a[idx]") on "idx; }' wobei du die Ausgabe auf deine Beduerfnisse anpassen musst. Das 'df -T' habe ich mit ins awk reingepackt, weil du vermutlich noch mehr machen willst (und mit den Ergebnissen weiterrechnen) und dann kann man das wohl auch in awk erledigen... Statt Ausgabe eben direkt weitermachen... HTH, -dnh -- Das ist die "Geiz ist Geil"-Generation, gespart wird vor allem am Verstand. Ich sehe das doch jeden Tag auf andere Bereiche des Lebens bezogen. Der größte Teil der Menschen will betrogen, belogen und abgzockt werden es muß alles schön bunt sein sonst funktioniert alles nicht. -- T. A. Bätzig in suse-linux
participants (3)
-
Al Bogner
-
Andreas Winkelmann
-
David Haller