PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prüfen, ob Diskette oder Band oder CD im Laufwerk ????



boesi666
30.03.04, 20:57
Hallo,

ich hab eine Frage, welche glaube ich max. hier her passt...:

Und zwar, habe ich mir ein script geschrieben, welches Dateien auf Bänder, Disketten etc kopieren soll.

Nun möchte ich aber vor dem kopieren prüfen lassen, ob überhaupt ein Datenträger im Laufwerk liegt... Geht das????

Mit der Funktion "test" geht es glaub ich nicht, ... kann man wohl nur prüfen, ob Dateien/Verzeichnisse existieren...

Wie krieg ich raus, ob Disk, CD, DAT Band im LW sind ???

Gronau
30.03.04, 21:14
Eine vielleicht etwas umständliche lösung hätte ich:
erst versuchen das medium zu mounten (mount /mnt/cdrom bzw. mount /mnt/fd0) und dann die varible $? auslesen. Ist sie 32 konnte das medium nicht gemountet werden (=kein medium drin), bei 0 ging alles glatt (=medium drin).

THEReapMan
30.03.04, 21:15
wenn du die medien mountest und keins im laufwerk ist spuckt mount nen fehler aus. und den müsstest du auswerten in deinem script.

boesi666
31.03.04, 06:40
Hallo, mit dem Mount Disk & CD auswerten bekomme ich bestimmt hin.

Aber wie kann ich das ganze beim DAT Laufwerk umsetzen. Die Bänder dort werden nicht gemountet. Dort spreche ich nur mit tar das Band an. tar sagt dann höchstens Fehler. Wie kann ich das denn in einer Bedingung auswerten ??

Dragoran
31.03.04, 16:50
ganz einfach cat /dev/xyz

boesi666
01.04.04, 20:38
hallo,

mit dem cat befehl hat es mich nicht wirklich weitergebracht.

Was aber funktioniert hat war aus dem ganzem kopierbefehl eine if bedingung zu machen...

echo "bitte datenträger einlegen"
if ! dd if=image.dd of=/dev/fd0 bs=4k
then
echo "fehler"
else
echo "erfolg"
fi

so fuktioniert es.
was jetzt noch gebraucht wird ist eine art "goto" anweisung wie ich sie noch von visual basic etc kenne. bin aber noch nicht so richtig fündig geworden... ich stelle mir das so vor:

start:
echo "bitte datenträger einlegen"
if ! dd if=image.dd of=/dev/fd0 bs=4k
then
echo "fehler"
goto start
else
echo "erfolg"
fi

habe überlegt das ganze mit while anstelle if zu machen, aber das ist nicht so gut, da ich in diesem beispiel hier die ausgabe echo "bitte datenträger einlegen"
übergehen müsste.
gibt es "goto" in in der bash programmierung ??