[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Information bevor Dateisystemcheck ansteht



"A. Bischof" <a.bischof@gmx.net> wrote:
>Am 24.12.2010 06:22, schrieb Hyte Software Inh. R. Bendig:
>> Am 24.12.2010 03:25, schrieb Claudius Hubig:
>...
>>      echo -e \
>>          " Aktueller Mountcount: $CNT\n" \
>>          "Maximaler Mountcount: $MNT\n" \
>>          "Verbleibende Mounts: $(($MNT - $CNT))\n" \
>>          "Check spaetestens am: `tune2fs -l $dev \
>>           | grep "^Next check after:" \
>>           | awk '{for (j=4;j<NF;j++) printf $j " "}'`" \
>>           | column -t -s ":"
>> done
>
>erst mal vielen Dank für die Programmierung - gerade die wollte ich ja eigentlich mit meiner Frage nach einem fertigen Skript vermeiden ;-)
>
>Jetzt fängt nämlich wahrscheinlich der Unterschied zwischen ein
>em schnellen Skript und einem Tool an:
>
>Die Anzeige ist ja schön, und wie ich sagte ist ja alles in tune2fs drin - aber ich will eben _nicht_ jeden Tag für alle Partitionen (>10) di
>e Ausgabe durchsehen, sondern ich möchte _dann_ einen Hinweis, wenn be
>im nächsten Booten ein Dateisystemcheck ansteht.
>
>Also müßte das Skript mindestens anfragen ob "verbleibende Moun
>ts" = 0 ist oder "Check spätestens am:" < 24h (bspw., besser konfigurierbar)
>.
>
>Wenn eine der Bedingungen erreicht ist, gibt das Skript eine Meldung|Email etc. aus, und zwar _nur dann!_

Hey,

der erste Teil ist ja recht einfach durchzuführen:

#!/bin/bash

DEVICES="/dev/sda1"
MINCNT=3

for dev in $DEVICES; do
    if ! /sbin/tune2fs -l $dev &>/dev/null; then
        echo "$dev enthaelt kein gueltiges Dateisystem!"
        continue;
    fi
    CNT=`tune2fs -l $dev | grep "^Mount count:" | awk '{printf $3}'`
    MNT=`tune2fs -l $dev | grep "^Maximum mount count:" | awk '{printf $4}'`
    if [ $(($MNT-$CNT)) -le $MINCNT ]; then
        echo "$dev wird nach $(($MNT-$CNT)) Mounts ueberprueft!"
    fi
done

Das gibt jetzt nur dann etwas aus, wenn eben diese Bedingung erfüllt ist.

Der zweite Teil ist etwas komplexer, weil ich tune2fs bisher noch nicht überreden konnte, diesen Zeitpunkt in der Unix-Zeit auszugeben bzw. date +%s -d `$zeitstring` auch scheitert (bin eben auch kein Profi :)). Sobald das aber irgendwie™ geht, ist es auch nur ein

    if [ $(($zeitinunix - `date +%s`)) -le 86400 ]; then
        echo "$dev wird innerhalb des naechsten Tages ueberprueft!"
    fi

Wenn man das ganze in cron.daily (oder ähnliches) packt und das
System richtig konfiguriert ist, gibt es ja dann auch eine e-Mail.

HTH,

Claudius
-- 
Do not worry about which side your bread is buttered on: you eat BOTH sides.

http://chubig.net/



Reply to: