PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Band eingelegt via Skript abfragen?



e2e4
11.03.04, 03:22
Salut,

ich möchte in meinem Backup-Skript (bash) eine Statusabfrage, ob das Band eingelegt ist bevor ich die anderen Befehle durchführe? Wie kann ich das erreichen?

Grüße, e2e4

Basti_litho
11.03.04, 07:01
"mt" kann sowas.

Ich glaub das war es:
http://mtx.sourceforge.net

e2e4
11.03.04, 07:27
Ich weiß, dass ich mit

mt -f /dev/st0 off

ein Band auswerfen kann, aber mir ist nicht klar wie ich damit eine Abfrage gestalten kann ob ein Band schon ausgeworfen worde?

mtx ist interessant aber ein neues Paket - wenn es also mit mt eine Lösung gibt wäre ich sehr dankbar.

Grüße, e24

Blackhawk
11.03.04, 09:00
mach nen rewind mit mt -f /dev/st0 rewind
wenn es fehlschlaegt, ist kein Band drin...

ThyMaster
11.03.04, 10:43
"mt status" ist m.E. besser, da am Band selbst (Position etc.) nix verändert wird.

Gruß
Falko

e2e4
11.03.04, 15:48
Salut,

ich weiß, dass ich mit

mt -f /dev/st0 status

herausfiltern kann, ob ein Band eingelegt worden ist oder nicht.

Bei einem eingelegten Band erscheinen Informationen zum LW-Typ usw., bei keinem Band erscheint "no medium found". Um das ganze aber mittels einer if/then-Schleife abzufragen müßte ich doch wissen welche ERROR-CODES dabei erzeugt werden, oder?

Grüße, e2e4

ThyMaster
12.03.04, 08:06
Stimmt,

und leider hab ich nie etwas über die Exit-Codes von mt finden konnte :(
Ich mein mich zu erinnern, dass ich folgendes herausgefunden hatte:
0 = alles OK, Band drin
1 = alles OK, kein Band
2 = Fehler

Ansonsten:
mt
echo $?

Gruß
Falko

e2e4
12.03.04, 09:13
Salut,

diese Codes klingen gut.


Ansonsten:
mt
echo $?

Wie meinst Du das genau? Sorry, ich habe noch nicht soviel Erfahrung in Shell-Programmierung :)

Grüße, e2e4

ThyMaster
12.03.04, 10:02
Sorry:

zuerst rufst Du mt uauf, mal mit Band, mal ohne.
Dann sofort(!) danach "echo $?"

$? ist der Platzhalter für den aktuell letzten Exit-code.
Ergo "echo $?" um dir den Exit-code anzeigen zu lassen.

Gruß
Falko

e2e4
12.03.04, 11:12
Super! Danke! Damit kann ich die richtigen Codes auslesen. Folgende habe ich jetzt:

0 = alles OK, Band drin
2 = kein Band

Mit meiner Abfrage stimmt dennoch noch etwas nicht. Ich poste mal den Auszug hier:

[code]
mt -f /dev/st0 status

if [$? -ne 0]
then
echo "Kein Band drin"
exit 1
else
echo "Band gefunden."
fi
[code]

Als Fehler erhalte ich
./test.sh: [2: command not found

Das Band ist in dem Zustand nicht eingelegt.

Grüße, e2e4

Blackhawk
12.03.04, 11:16
Leerzeichen !

[ $? -ne 0 ]

e2e4
12.03.04, 11:36
Jau, einfach und gut! Danke! :)