Backupscript läuft nicht rund

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Ra1976
Beiträge: 6
Registriert: 09.07.2009 04:33:22

Backupscript läuft nicht rund

Beitrag von Ra1976 » 11.07.2009 15:56:52

Hallo

Ich möchte mit folgendem Script meine Systeme Sichern, die Sicherung auf BAnd läuft ansich ohne fehler durch, nur am schluss meint tar das das was tar grade eben geschrieben hat nun kein tar mehr sei. Hat vlt jemand ne idee warum?

Code: Alles auswählen

mt -f /dev/nst1 lock
SaveDir="/"                 
Wochentag=`date +%A`
Datum=`date +%F`
Zeit=`date +%R`
Programm=TAR
LabelNeu="/root/LabelNeu.dat"
LabelAlt="/root/LabelAltdat"
echo -e "Wochentag:$Wochentag\nDatum:$Datum\nZeit:$Zeit\nSicherungsprogramm:$Programm" > $LabelNeu
echo $LabelNeu
mt -f /dev/nst1 rewind
mt -f /dev/nst1 setblk 0
dd if=$LabelNeu of=/dev/nst1 count=1
tar cvf - /sicherungsverzeichnis -b 1024 | mbuffer -s 64k -m 256M -P 98 > /dev/nst1
mt -f /dev/nst1 rewind
sleep 4
tar -tf /dev/nst1
mt -f /dev/nst1 rewind
mt -f /dev/nst1 unlock
mt -f /dev/nst1 offline

Gruß
Ra1976

dingsda
Beiträge: 95
Registriert: 10.06.2009 23:45:50

Re: Backupscript läuft nicht rund

Beitrag von dingsda » 11.07.2009 17:00:03

wow, dein script hat genau null interne tests ... d.h. du gehst z.B. davon aus das immer alle Pfade mit device nodes besetzt sind etc. Kein Wunder das du keine Ahnung hast warum "irgendwas" nicht funktioniert. Schau dir einmal man test an da siehst du wie du ein paar tests einbauen kannst. Du gehst auch davon aus das binaries wie tar einfach vorhanden sind. Was wenn nicht? Wie merkst du das? Wie reagiert dein script? Wohin fliegt die Rakete wenn ein undefinierter Zustand eintritt? /me geht in den Keller, macht die Stahltuere hinter sich zu :D

Ra1976
Beiträge: 6
Registriert: 09.07.2009 04:33:22

Re: Backupscript läuft nicht rund

Beitrag von Ra1976 » 11.07.2009 17:30:34

dingsda hat geschrieben:wow, dein script hat genau null interne tests ... d.h. du gehst z.B. davon aus das immer alle Pfade mit device nodes besetzt sind etc. Kein Wunder das du keine Ahnung hast warum "irgendwas" nicht funktioniert. Schau dir einmal man test an da siehst du wie du ein paar tests einbauen kannst. Du gehst auch davon aus das binaries wie tar einfach vorhanden sind. Was wenn nicht? Wie merkst du das? Wie reagiert dein script? Wohin fliegt die Rakete wenn ein undefinierter Zustand eintritt? /me geht in den Keller, macht die Stahltuere hinter sich zu :D
Herzlichen dank für Deine Antwort...

Woher ich weis das die benötigten Programme da sind, ganz einfach ich hab die Kisten selber Installiert.

Ansonsten Trollfutter. bzw Threadcounter, bitteschön und sogar gratis.

dingsda
Beiträge: 95
Registriert: 10.06.2009 23:45:50

Re: Backupscript läuft nicht rund

Beitrag von dingsda » 11.07.2009 21:00:45

Dein script macht keinen einzigen Test darum hast du auch keine Ahnung was daneben geht, so einfach ist das. Kein Grund persoenlich zu werden.

Ra1976
Beiträge: 6
Registriert: 09.07.2009 04:33:22

Re: Backupscript läuft nicht rund

Beitrag von Ra1976 » 11.07.2009 21:48:33

Sagt der richtige, vergiss es einfach... Wenn du keinen produktiven kommentar abgeben kannst oder willst, hättest du dir den ersten auch sparen können. welcome to ignore. so einfach ist das.

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

Re: Backupscript läuft nicht rund

Beitrag von cosmac » 11.07.2009 23:01:49

hi,

ich schätze mal, da fehlt sowas wie "mt -f /dev/nst1 fsr 1" vor dem "tar -tf". Direkt nach dem rewind liest tar ja erstmal dein Label.
Beware of programmers who carry screwdrivers.

Ra1976
Beiträge: 6
Registriert: 09.07.2009 04:33:22

Re: Backupscript läuft nicht rund

Beitrag von Ra1976 » 11.07.2009 23:27:03

Hallo

ich hatte erst an deiser stelle ein

mt -f /dev/nst0 fsf 1 (*1)

stehen, hatte aber leider den geichen effekt.

1) fsf Forward space count files. The tape is positioned on the first block of the next file.

Ich hatte zwischenzeitlich die ganze Label geschichte ausgeschaltet, aber bleibt beim gleichen. ://

Gruß
Ra1976

dingsda
Beiträge: 95
Registriert: 10.06.2009 23:45:50

Re: Backupscript läuft nicht rund

Beitrag von dingsda » 12.07.2009 09:29:05

so prueft man ob ein binary da ist bzw. wenn am system, am vermuteten platz nach FHS. Im script verw. du dann nicht tar sondern $exe_tar.

Code: Alles auswählen

[[ -x $(which tar) ]] && exe_tar=$(which tar) || echo "Error: Cannot find/execute tar"
ob deine device nodes auch device nodes sind und ob and den pfaden wo du denks das sie sind, diese auch sind geht dann in etwa so

Code: Alles auswählen

[[ -e $path_to_dev_node && -b $path_to_dev_node ]]  || echo "Error: blabla"
damit du auf der bash extended test verw. kannst setzt du

Code: Alles auswählen

shopt -s extglob
am anfang vom script, gleich nach

Code: Alles auswählen

#!/bin/bash -x
was dir deine Fehler zeigen wird da jede line wie sie die bash sieht ausgegben wird

Wenn du dann diese basic tests im script hast, muessen korrecte exit values hinein z.B. gibt ein script bei erfolg immer 0 zurueck

Code: Alles auswählen

#_  . exit codes
# http://tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF
# 0     Successful execution
# 1     Catchall for general errors
# 2     Misuse of shell builtins (according to Bash documentation)

# 64    command line usage error
# 65    data format error
# 66    cannot open input
# 67    addressee unknown
# 68    host name unknown
# 69    service unavailable
# 70    internal software error
# 71    system error (e.g., can't fork)
# 72    critical OS file missing
# 73    can't create (user) output file
# 74    input/output error
# 75    temp failure; user is invited to retry
# 76    remote error in protocol
# 77    permission denied
# 78    configuration error

# 126   Command invoked cannot execute
# 127   "command not found"
# 128   Invalid argument to exit
# 128+n Fatal error signal "n"
# 130   Script terminated by Control-C
# >255  Exit status out of range
aja, dein script ist auf Deutsch, auch nicht gut. Sollte Englisch sein. Jeder der mal ein script vom schwedischen Kollegen, in Landssprache geschrieben, vor sich hatte ... :D

Antworten