Shell Script für Backup Programm

Post Reply
Message
Author
nostrike
Posts: 15
Joined: 31. Oct 2003 8:23
Location: 82178 Puchheim

Shell Script für Backup Programm

#1 Post by nostrike »

Hallo Linux- Programmier- Cracks,

ich hab da mal wieder ein Problem.
Da ich nun schon einiges unter Linux laufen habe möchte ich dies auch auf mein Tapedrive sichern.
Tar Befehl usw ist mir schon klar. Läuft auch wenn ich es manuell eingebe.
Was ich nun noch möchte, ist das ganze in einem Scipt.
Das ganze soll so aussehen.

1.) Aufforderung zum einlegen des Tapes
2.) Bestätigung mit z. B. <Return> Taste
3.) Testen ob das Tape eingelegt ist, wenn nicht erneute Aufforderung.
4.) Rückspulen des Tapes
5.) Backup
6.) Ausgabe Text "Backup Ende"

Was ich bis jetzt schon habe ist

#! /bin/bash
#Backup Script
echo Bitte Tape einlegen
???????????????????
???????????????????
mt -f/dev/nst0 rewind
tar -cvf/dev/nst0 /home
echo Backup ende


Die zwei Zeilen mit Fragzeichen betreffen meine Anforderungen 2 und 3.
Unter Dos gibt es das Kommando Pause, sowas in der Art suche ich.
Oder irgend etwas ähnliches was mein Scipt vervollständigt.

Hab schon einiges an Sucharbeit hinter mir, aber nichts gefunden oder
einfach nach was falschem gesucht.

Für Eure Hilfe wäre ich euch sehr dankbar.
Oder weis jemand Seiten wo Beispiele für Backup-Scripts stehen.

Gruß
Peter

joersch

#2 Post by joersch »

Mahlzeit,

zu deinem pkt 3
mt mit der option status bei meinem rechner:

zoarix:~ # mt -f /dev/nst0 status
drive type = Generic SCSI-2 tape
drive status = 603979776
sense key error = 0
residue count = 0
file number = 0
block number = 0
Tape block size 0 bytes. Density code 0x24 (DDS-2).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_EN
zoarix:~ # mt -f /dev/nst0 rewind
zoarix:~ #
zoarix:~ # mt -f /dev/nst0 offline
zoarix:~ # mt -f /dev/nst0 status
mt: /dev/nst0: No medium found

damit sollte sich doch was anfangen lassen!

Gruss

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#3 Post by jochen »

"pause": read VAR

Code: Select all

echo Bitte Taste zerschmettern
read EGAL

Auf eingelegtes Band prüfen:

Code: Select all

if mt -f /dev/nst0 status | grep -q XXX ; then
    echo Kein Band eingelegt
    exit 1
fi
Mangels Tapedrive, an dem ich testen könnte, kann ich Dir nicht genau sagen wonach Du greppen musst. Führ das "mt status"-Kommando mal aus, wenn kein Tape drinne liegt und such Dir da eine eindeutige Zeile von aus. Füge die anstelle von XXX oben ein und es sollte funktionieren.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#4 Post by jochen »

Tja, mit joerschs Info hat sich das ja schon erledigt. :)

Noch ein kleiner Tipp am Rande: Nach der Sicherung lasse ich das Band immer gerne auswerfen:

Code: Select all

mt -f /dev/nst0 rewoffl
Kombiniert Zurückspielen des Tapes und Auswerfen in einem.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

nostrike
Posts: 15
Joined: 31. Oct 2003 8:23
Location: 82178 Puchheim

Danke, Danke

#5 Post by nostrike »

Hallo Jochen, hallo Joersch

habe Euren Rat beherzigt und alles so eingegeben, wie folgt:

#! /bin/bash
#Rückspul + Auswurf Script
echo Bitte Tape einlegen
read egal
if mt -f /dev/nst0 status | grep -q "No medium found ; then
echo Bitte Band einlegen
exit 1
fi
mt -f/dev/nst0 reoffl

Leider bricht mir jetzt das rückspulen ab, wenn kein Band eingelegt ist. Ich möchte aber erreichen, daß die Routine solange aktiv bleibt bis ein Band eingelegt ist und dann die Befehle ausführt.

Desweiteren habe ich noch ein Problem. Ich möchte das Band mit einem Namen versehen und zwar mit dem des zu sichernden Directories und dem Datum.
Die Prüfung des Bandes soll dann erfolgen auf das Directory. Wenn ein falsches Band drinnen ist, soll er solang weiterfragen bis das richtige Band drinnen ist.

Als Beispiel:
möchte mein - HEL_Mun - Directory am 01.09.2004 sichern.

eingabe: HEL_MUN 01092004
wo kann ich dem Tape einen Namen geben? im Tar Befehl oder mit dem mt Befehl?
wie muß ich die Namen trennen, daß ich z. B. auf HEL_MUN abfragen kann

Post Reply