[tip] if - mount - umount Bedinungen im Backupscript

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

[tip] if - mount - umount Bedinungen im Backupscript

Beitrag von slu » 12.11.2006 14:39:20

Hallo Forum,

ich versuche gerade eine Sicherung mit einer externen USB Festplatte zu realisieren.

Der Beitrag "lehnt" an diesen an:
http://www.debianforum.de/forum/viewtop ... highlight=

Dazu möchte ich mit Hilfe von

Code: Alles auswählen

lsusb
ermitteln ob die Festplatte angeschlossen ist bzw. Spannung hat.

Wenn ja soll eine Sicherung mit rsync erfolgen und danach die Platte wieder abgeschaltet werden.

Sollte keine Platte vorhanden sein soll eine mail an root raus in der Forum

Code: Alles auswählen

echo "Festplatte ist nicht angeschlossen" | mail root@localhost
Ich weis nun nicht wie ich was abfrage (lsusb) und dann je nach ergebniss im Script weiter laufe.

Wäre super wenn mir da jemand unter die Arme greifen würde, dann würde ich mal probieren ein Script zu schreiben.

EDIT:
Betreff geändert, sollte nun treffender sein.
Zuletzt geändert von slu am 13.11.2006 00:03:27, insgesamt 2-mal geändert.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 12.11.2006 16:14:09

slu hat geschrieben: ch weis nun nicht wie ich was abfrage (lsusb) und dann je nach ergebniss im Script weiter laufe.
Wenn du ein Shell-Skript schreiben möchtest, brauchst du z.B. nur die Ausgabe von lsusb zu speichern und dann nach dem Namen der Festplatte (den du ja siehst wenn die Platte eingeschaltet ist) greppen.
Oh, yeah!

Benutzeravatar
Baer
Beiträge: 373
Registriert: 08.09.2004 17:09:13
Wohnort: Zürich

Beitrag von Baer » 12.11.2006 16:23:36

Hallo slu
warum willst du das den mit mit lsusb machen?
Udev ist doch genau geschaffen dafür.
Du kannst Regeln festlegen welche deine Platte ziemlich eindeutig Identivizieren, und du kannst auch festlegen was geschehen soll wenn die Platte angeschlossen wird.(zb Skript ausfüren)
Gruss Urs

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 16:25:54

Hi Duff,

lsusb sagt:

Code: Alles auswählen

slu@slu-desktop:~$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 005 Device 004: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE Adapter
Bus 005 Device 001: ID 0000:0000
slu@slu-desktop:~$
Nun möchte ich:
- Festplatte vorhanden?
--> JA Mounten und Sicherung durchführen
--> NEIN Status der USBswitch auslesen und ggf. einschalten

Du meinst speicher in eine Datei?
Quasi

Code: Alles auswählen

lsusb > status_usb
Geht das nicht direkt? Also das ich das im Script als Variable (stimmt der Begriff?) ablege/auswerte?

EDIT:
@ Baer,

danke für deine Antwort!
Ich möchte das auf einem Sarge System anwenden ohne udev.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 12.11.2006 16:32:33

Du kannst die Ausgabe von lsusb auch einfach in eine Variable speichern. Geht auch.

Zum Beispiel kannst du folgendes in der Shell mal ausprobieren:

Code: Alles auswählen

usb=`lsusb`

echo $usb

echo $usb | grep 'Cypress Semiconductor'
Oh, yeah!

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 16:38:49

Hi Duff,

ja an sowas dachte ich.

Nun möchte ich erst einmal eine Entscheidung bauen.

Schauen ob "Cypress Semiconductor" vorhanden
-> wenn ja echo "OK"
-> wenn nein echo "Fehler"

Evtl. kennst du auch ein guten Link in dem es ein wenig HowTo gibt bzw. ich probieren kann.

Edit2:
Hier mal ein versuch:

Code: Alles auswählen

#!/bin/bash
usb=`lsusb` 
if echo $usb | grep 'Cypress Semiconductor'
then
    echo "OK"
else
    echo "DEVICE nicht vorhanden"
fi 
Das funktioniert schon mal, auch wenn ich immer die Ausgabe uns lsusb sehe nach dem Script ausführen.

Code: Alles auswählen

slu@slu-desktop:~/Desktop$ lsusb.sh
Bus 004 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 005 Device 004: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE Adapter Bus 005 Device 001: ID 0000:0000
OK
slu@slu-desktop:~/Desktop$

Code: Alles auswählen

slu@slu-desktop:~/Desktop$ lsusb.sh
DEVICE nicht vorhanden
slu@slu-desktop:~/Desktop$
Wie kann ich dies Ausgabe unterdrücken?
Wann werden die Variablen wieder gelöscht?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Baer
Beiträge: 373
Registriert: 08.09.2004 17:09:13
Wohnort: Zürich

Beitrag von Baer » 12.11.2006 17:16:06

Hallo slu
dass Geht ganzeinfach indem du die Ausgabe von

Code: Alles auswählen

echo $usb
ins Datennirvana schickst

Code: Alles auswählen

 echo $usb > /dev/null 
die Variable brauchst du im Ueberigen nicht wircklich

Code: Alles auswählen

 if  `lsusb| grep 'Cypress Semiconductor' `
ist dasselbe ohne den umweg über die Variable
Ich grab gleich noch ein paar links hervor, bin auch grad an meinen ersen Skrippt Schritten.
Gruss Urs
[edit] Hier die Links:
http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
http://www.tldp.org/LDP/abs/html
https://systemausfall.org/wikis/howto/ShellSkriptHowTo
http://www-user.tu-chemnitz.de/~hot/uni ... eugkasten/

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 17:19:34

Hi Baer,

geht leider nicht.

Code: Alles auswählen

slu@slu-desktop:~/Desktop$ lsusb.sh
./lsusb.sh: line 2: Bus: command not found
DEVICE nicht vorhanden
slu@slu-desktop:~/Desktop$

Code: Alles auswählen

#!/bin/bash
if  `lsusb | grep 'Cypress Semiconductor'`
then
    echo "OK"
else
    echo "DEVICE nicht vorhanden"
fi 
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 17:23:30

fangen wir mal von hinten an:

- die Variablen werden gelöscht, sobald das Script beendet ist

- eine uralte Unix-Regel sagt: "keine Nachrichten sind gute Nachrichten",
d.h. wenn es eine Ausgabe gibt, möchtest du sie im Zweifel auch sehen.
Das ist besonders praktisch, wenn das Script per Cron gestartet wird.
Wenn es (Fehler-)Meldungen gibt, werden die automatisch per Mail an
root geschickt, aber normal passiert garnichts.

- "lsusb" sagt nur, ob ein Adapter mit dem bestimmten Namen angesteckt
ist. Du erfährst nicht, ob die Platte eingeschaltet ist und ob es überhaupt
die richtige Platte ist -- für's Backup möchte man evt. täglich zwischen
2 oder mehr Platten wechseln. Wenn du den Partitionen der Backup-Platte
ein eindeutiges Label gibst, brauchst du nur noch den mount-Befehl:

Code: Alles auswählen

if mount LABEL="backup_disk_1" $BACKUP_DIR
then
   rsync --help
else
   echo "Backup-Partition konnte nicht gemountet werden" | mail slu
   exit 1
fi
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 17:28:20

Hi cosmac,

was genau meinst du mit Label?
/dev/sda1 ?

Wenn nein, wie kann ich das vergeben?
(Es sollen in der Tat mehrere USB Platten sein).

Was bewirkt das "exit 1"
Das das Script einen Fehler hatte?

Also mit andern Worten, du versuchst einfach die Partition zu mounten und wenn es nicht geht machst du in deinem Beispiel eine Mail, richtig?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Baer
Beiträge: 373
Registriert: 08.09.2004 17:09:13
Wohnort: Zürich

Beitrag von Baer » 12.11.2006 17:34:03

sorry
die sind falsch, sie müssen Ersatzlos gestrichen werden.
aber ich den mal das der Ansatz von cosmac die richtige Lösung ist, das mit lsusb auswerten ist doch reichlich fricklig
Gruss Urs

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 17:41:58

LABEL ist ein frei wählbarer Name einer Partition und wird im
Superblock gespeichert. Das Label ist also immer fest den Daten
zugeordnet. Das Device /dev/sda1 ändert sich schon mal, wenn
z.B. jemand an einem anderen USB-Port eine Digicam angesteckt
hat. In dem Fall würdest du das Backup auf die Kamera schreiben.
Um den Namen zu ändern brauchst du sowas:

Code: Alles auswählen

tune2fs -L "backup_disk_1" /dev/sda1
Der Kernel pflegt eine Tabelle aller erreichbaren Partitionen und
entsprechend funktioniert mount -- oder eben nicht, dann gibt's mail.

@Baer: naja, udev bzw, hotplug wäre schon noch "richtiger". Aber bis
das mal stabil wird...
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 17:48:43

Hi cosmac,

danke für deine Antwort.
Der Kernel pflegt eine Tabelle aller erreichbaren Partitionen und
entsprechend funktioniert mount -- oder eben nicht, dann gibt's mail.
Daraus entnehme ich das ich den tune2fs auf dem Rechner absetzen muss an dem ich die Platte verwenden will?
Oder erkennt der Rechner das beim antecken bevor die Platte gemountet ist?
EDIT: Geht auch auf einem anderen Rechner, damit ist diese Frage geklärt.

Kann ich dann allen Platten den selben Namen geben? Oder alle Platten nacheinnander abfragen im Script?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 18:29:37

Mit "pflegt" meinte ich sowas wie "immer auf dem aktuellen Stand hält"
d.h. sobald die Platte ausgesteckt wird, verschwindet sie aus der Liste.
slu hat geschrieben:Kann ich dann allen Platten den selben Namen geben? Oder alle Platten nacheinnander abfragen im Script?
Kann natürlich
- Nachteil: der Benutzer kann die Platten verwechseln
- Vorteil: jede der Platten funktioniert
- naja

Zum Nacheinander-Abfragen ist die Datei "/proc/partitions" gut.
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 18:43:37

Hi cosmac,

vielen Dank für deine Antwort!

Ich habe nun das Script mal so aufgebaut:

Code: Alles auswählen

#!/bin/bash
/home/slu/Desktop/USBswitch 1 -s
echo "Festplatte an"
sleep 30
if mount LABEL="backup_disk_1" /home/slu/Desktop/backup
then
    sleep 2
    echo "Festplatte eingehängt, beginne kopieren"
    cp -v /home/slu/Desktop/test/* /home/slu/Desktop/backup
    sleep 2
    echo "Ende kopieren"	
    umount /home/slu/Desktop/backup
    sleep 10
    echo "Festplatte umounted, schalte ab"	
    /home/slu/Desktop/USBswitch 0 -s	
    echo "Festplatte aus"
else
    echo "Fehler, schalte Festplatte in 20 Sekunden ab"
    sleep 20
    /home/slu/Desktop/USBswitch 0 -s
    echo "Festplatte aus"
fi 
Nun hätte ich noch die ein oder andere Frage:
- Was passiert wenn z.B. beim kopieren ein Fehler auftritt? Springt dann das Script nach else?
(Das wäre schlächt da sonst die Platte noch gemountet ist und abgschaltet wird)

- Warum wird beim mount keine Dateinensystem angeben?
Ich sehe immer wieder beide varianten
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 19:35:42

erstmal was anderes:
- kopieren solltest du mit "cp -a" (oder eben rsync oder tar)
- das erste sleep ist notwendig, hier wäre hotplug besser

Normalerweise läuft ein Script unbeirrt weiter wenn z.B. das cp nicht
funktioniert. In dem speziellen Fall wäre das nicht so schlimm, die
Platte wird unmounted und abgeschaltet. Wenn aber das umount
nicht geht, sollte sie nicht abgeschaltet werden. Mit einer Zeile

Code: Alles auswählen

set -e
am Anfang des Scripts wird es nach jedem Fehler sofort beendet.
So bleibt die Platte bis zum nächsten Tag im unveränderten Zustand,
aber man kann keine Fehlermeldung mehr mailen.
Mehr gezielte Abfragen oder "set -e" ist wohl Geschmackssache.

Das mount-Programm probiert ohne "-t typ" alle Dateisysteme durch,
die der Kernel kennt. Das ist minimal unzuverlässiger und dauert etwas
länger, aber bis ich "-t ext2" eingetippt hab, ist mount auch fertig.
Beware of programmers who carry screwdrivers.

Benutzeravatar
Baer
Beiträge: 373
Registriert: 08.09.2004 17:09:13
Wohnort: Zürich

Beitrag von Baer » 12.11.2006 19:37:29

hallo
- Was passiert wenn z.B. beim kopieren ein Fehler auftritt? Springt dann das Script nach else?
Nein es läuft frölich weiter, und behaubtet stinke frech "Ende kopieren".
Wenn man einen Befehl nur durchfüren will wenn der vorherige Fehlerfrei durchgelaufen ist, macht mann dass mit && also

Code: Alles auswählen

befehl1&&befehl2
. Umgekehrt kann mann mit || errechen das ein Befehl nur ausgefürt wird wenn der vorherige einen Fehler zurück gab.


cosmac hat oben mal rsync erwähnt (Statt cp) Ich glaub das würde sich lohnen,

Weiter oben die links bekucken auch (sind nur die ersten beiden Enlisch) es Stehen ganz viele tolle sachen drinn
Gruss Urs

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 20:54:13

Hi cosmac,
hi Baer,

danke für eure Beiträge.

Ich habe gerade mal die Festplatte ausgeschaltet (HW-Schalter).

Code: Alles auswählen

root@slu-desktop:/home/slu/Desktop# ./lsusb.sh
Festplatte an
mount: Gerätedatei LABEL=backup_disk_1 existiert nicht
Fehler, schalte Festplatte in 20 Sekunden ab
Festplatte aus
root@slu-desktop:/home/slu/Desktop#
Das wäre ja ok so.
Sobald der dann mal in dem "then" drin ist kommt ja auch wieder ein umount.

Müsste also soweit passen oder?

Wie meinst du das mit dem "hotplug", kann ich das irgendwie auslesen?

Bzgl. der Sicherung, ich verwende auf jedenfall rsync, nur zum testen hab ich mal schnell ein cp reingetippt.

EDIT:
Wollte das umount nochmal überprüfen, aber einfach ineinanderschachteln geht nicht.
Ah ich habe das "fi" vergessen, nun gehts.

Code: Alles auswählen

#!/bin/bash
/home/slu/Desktop/USBswitch 1 -s
echo "Festplatte an"
sleep 30
if mount LABEL="backup_disk_1" /home/slu/Desktop/backup
then
    sleep 2
    echo "Festplatte eingehängt, beginne kopieren"
    cp -v /home/slu/Desktop/teste/* /home/slu/Desktop/backup
    sleep 2
    echo "Ende kopieren"	
    #umount /home/slu/Desktop/backup
    sleep 10
    echo "Festplatte umounted, schalte ab"
      if mount | grep /home/slu/Desktop/backup >/dev/null		
        then 
        umount /home/slu/Desktop/backup
        echo "Festplatte war nicht ausgehängt, mache das jetzt!"
        sleep 10
        /home/slu/Desktop/USBswitch 0 -s	
        echo "Festplatte aus"
      else
        /home/slu/Desktop/USBswitch 0 -s	
        echo "Festplatte aus"
      fi
else
    echo "Fehler, schalte Festplatte in 20 Sekunden ab"
      if mount | grep /home/slu/Desktop/backup >/dev/null		
        then 
        umount /home/slu/Desktop/backup
        echo "Festplatte war nicht ausgehängt, mache das jetzt!"
        sleep 20
        /home/slu/Desktop/USBswitch 0 -s
        echo "Festplatte aus"
      else
        sleep 20
        /home/slu/Desktop/USBswitch 0 -s
        echo "Festplatte aus"
      fi
fi 

Code: Alles auswählen

root@slu-desktop:/home/slu/Desktop# ./lsusb.sh
Festplatte an
Festplatte eingehängt, beginne kopieren
cp: Aufruf von stat für „/home/slu/Desktop/teste/*“ nicht möglich: Datei oder Verzeichnis nicht gefunden
Ende kopieren
Festplatte umounted, schalte ab
Festplatte war nicht ausgehängt, mache das jetzt!
Festplatte aus
root@slu-desktop:/home/slu/Desktop#
Ist das Script so ok?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 21:31:18

slu hat geschrieben:Müsste also soweit passen oder?
Sieht gut aus, besonders zusammen mit der mount-Prüfung.
slu hat geschrieben:Wie meinst du das mit dem "hotplug", kann ich das irgendwie auslesen?
Wenn du weiter so schnell lernst, nächste Woche ;)
Mit den Kernel 2.6.8 aus Sarge geht es ziemlich gut, aber der Mechanismus
ist sehr komplex und vor allem wird er immer noch häufig geändert. Bis da
eine klare Linie drin ist und die Doku aktualisiert ist, fasse ich das nicht an ;)

Naja, mal sehen, wenn du noch längere Zeit bei Sarge bleiben willst und bei
der Umstellung auf Etch alles wieder anders machen willst, können wir
nochmal verhandeln.
slu hat geschrieben:Kann ich irgendwie mit

Code: Alles auswählen

mount | grep /home/slu/Desktop/backup
doch noch vor dem ausschalten Kontrollieren ob auch sicher umountet ist?
na klar, gute Idee. Du kannst noch den Pfad /home/slu... in eine
Variable packen, damit mount, rsync und dieser Test auf jeden
Fall den gleichen benutzen.
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 23:11:26

Hi cosmac,

das mit dem "hotplug" ist nicht nötig.
Ich hab ja ein sleep drin und wenn das nicht reicht klappt ja das mounten nicht was zu einer Fehlermail an root führt.

Mich beschäftigt gerade ein anderes Problem, ich habe gerade mal rsync eingebaut mit

Code: Alles auswählen

rsync --verbose --recursive --stats --delete --links --safe-links /home/slu/Desktop/test/* /home/slu/Desktop/backup
das komisch ist das rsync immer wieder alle Dateien überträgt.

Code: Alles auswählen

Number of files: 3
Number of files transferred: 2
Dann hab ich mal nach tra und unison gesucht, aber zu ist fast nichts im Forum zu finden.

Bei der Datenmenge die ich habe >100 000 Dokumente wäre es schon besser nur geänderte Datei zu kopieren.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 12.11.2006 23:32:49

rsync ist schon das passende Werkzeug und macht normal auch
das Richtige. Da fällt mir nur ein: ist die Ziel-Partition nicht
ext2/ext3-formatiert?

Ansonsten wäre die Frage vielleicht einen neuen Thread wert.
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2006 23:47:10

Hi cosmac,

ja Dateiensystem ist ext3.
Ich teste nochmal und mach ggf. einen neuen Theader auf.
EDIT:
http://www.debianforum.de/forum/viewtop ... 073#469073
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 13.11.2006 18:05:34

Hi,

gibt es eine möglichkeit den noch freien Festplattenspeicher zu ermitteln/bzw. einzubauen?

Mit df kann man ja den benützten Speicherplatz ermitteln, ich würde noch gerne irgendwie eine Warnmail an root einbauen wenn es über 80% geht.

Das auslesen ist kein Problem, aber wie bau ich eine entscheidung > als?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 13.11.2006 18:49:47

wenn man nicht die "freien Prozent" sondern die freien Blocks
der Partition abfragt, geht es ganz einfach:

Code: Alles auswählen

 [ `stat -c%f -f /Verzeichnis/auf/der/Partition` -lt 999 ] && echo "Partition ist voll"
statt "<" muss man hier "-lt" schreiben.

Mit "-c%f" werden die ueberhaupt noch freien Blocks abgefragt,
mit "-c%a" kommt weniger raus, naemlich das, was normale User
noch nutzen koennten.
Beware of programmers who carry screwdrivers.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 13.11.2006 19:08:58

Hi cosmac,

danke für deine Antwort.

Dann werd ich das mal mit einer if Bedinung versuchen nach "if mount und then" einzubauen.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Antworten