Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
IF-Verzweigung im Shellskript

 
Dieses Forum ist gesperrt, Sie können keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, Sie können keine Beiträge editieren oder beantworten.    Pro-Linux Foren-Übersicht -> Linux-Forum (alt)
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
chiefB
Gast





BeitragVerfasst am: 04. Okt 1999 14:48   Titel: IF-Verzweigung im Shellskript

Hi Freaks,

folgendes Problem: 2 Linux-Server (SuSE 6.0) vernetzt
per EtherNet, der eine fungiert als Backup-Server, und
zwar so:
per cronjob wird ein shell-skript auf dem Server mit den zu sichernden
Daten gestartet, welches folgende Aktionen durchführt:

1) Mounten des Shares /data auf dem Backup-Server
2) Kopieren der zu sichernden Daten auf das gemountete Netzlaufwerk

Nun zum eigentlichen Problem:
wir wollen in das Skript eine Bedingung einbauen, die den Punkt 2)
erst dann ausführen lässt, falls Punkt 1) auch tatsächlich schon
abgearbeitet wurde. Das heisst, wenn der Backup-Server -warum auch immer-
ausgestiegen sein sollte, dann gibts natürlich auch nix zu mounten und
das Kopieren sollte in diesem Fall gar nicht erst angestoßen werden.

Wie kann man das möglichst einfach realisieren ?

Vielen Dank im voraus
ChiefB
 

Andre
Gast





BeitragVerfasst am: 04. Okt 1999 18:17   Titel: Re: IF-Verzweigung im Shellskript

Also meiner Meinung nach waere naheliegend, zu gucken, ob ein entsprechendes Verzeichnis oder eine Datei vorhanden ist, die eben nur da ist, wenn das Mounten funktioniert hat. Das geht mit test (man test), was man in der Schreibweise mit eckigen Klammern in einem if-statement schreiben kann. So ungefaehr saehe so eine Abfrage wie folgt aus:

if [-d /mnt/other_hd/backup_dir]
then
tar cvf /mnt/other_hd/backup/`date +"%y/%h/%d"` /datas/*
fi

Nach dem then kann auch gleich ein Befehl kommen, aber das then muss auf einer neuen Zeile stehen (oder ein semikolon davor). Das ganze ist ksh (was ich immer mache) ... bash sollte genauso gehen. Fuer eine tcshell musst Du mal in die manpage der shell gucken, wie eine Verzweigung da aufzuschreiben geht. Ach ja, und man kann natuerlich auch in einem else Zweig eine Mail senden, wenn es nicht geklappt hat mit dem Backup. Sowas ist im allgemeinen ziemlich nuetzlich ...
 

Andre
Gast





BeitragVerfasst am: 04. Okt 1999 18:25   Titel: Re: IF-Verzweigung im Shellskript

nochmal, weil ich was uebles vergessen hab. Die shell will naemlich Leerzeichen bei eckigen Klammern. Na wirst Du sehen. Und ich hab mich beim tar verschrieben ... mein Beispiel sollte natuerlich ins backup_dir schreiben, was ich vorher getestet hab. Mit dem date (mit rechten Anfuehrungszeichen) wird automatisch zu jedem Tag eine neue Datei geschrieben ... falls Du's nicht kennst ... so ist das jedenfalls praktisch. Kannst es dann einfach als cron-job jeden Tag ausfuehren lassen.

Na gut. Ja, und -d beim test ist eben fuer gucken, ob ein directory existiert, sonst ist es -x fuer eine Datei. Siehe manpages.

Hope that helps ... Andre
 

adam



Anmeldungsdatum: 16.08.1999
Beiträge: 54

BeitragVerfasst am: 05. Okt 1999 11:52   Titel: Re: IF-Verzweigung im Shellskript

Eine andere Idee wäre, den Rückgabewert des zuerst abgearbeiteten Punktes zu überprüfen. Wenn er '0' ist, dann hat es geklappt und der Punkt 2 kann ausgeführt werden. Das sähe dann z.B folgendermassen aus:

>1. Punkt ausführen.
#Direkt danach den Rückggabewert prüfen mit:
> if [ $? = 0 ]
then
echo "1.Punkt erfolgreich ausgeführt"
2.Punkt ausführen
else
echo "Fehler beim 1.Punkt"
fi

Zu beachten wäre, daß die Abfrage $? sich immer auf den ZULETZT ausgeführten Befehl bezieht. Man sollte also bei Befehlen mit Pipes darauf achten, was zuletzt ausgeführt wird..

Adam
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Linux-Forum (alt) Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy