• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

bash scripting & Shutdown-befehl

hallo,
ich schreibe gerade ein Backup-Script, das nach Beendigung der Arbeit den Rechner runter fahren soll.
Allerdings fährt der Rechner das System etwas schneller runter als geplant.
Wie kann ich Ihm sagen, das er auf die Abarbeitung der Befehle warten soll?
 
ich habe nun in einem Script 2 dar-Kommandos hintereinander stehen.
Wie sage ich Ihm nun, das er erst das erste abarbeiten soll, dann das zweite, dann shutdown?

pause(void) hat ja keine Parameterübergabe. Wird das einfach ins Script geschrieben?
 
Also folgendes beispiel:
dar \
-c "/home/BACKUP/www_$(date +%y%m%d_%H)" \
-R "/srv/www/htdocs/gif/" \
-w \
-s 734003200 \
-p \
-D \
-y \
-m 256 \
-Z "*.avi" -Z "*.bz2" -Z "*.gif" -Z "*.gz" \
-Z "*.jpg" -Z "*.mov" -Z "*.mpg" -Z "*.pbm" \
-Z "*.pdf" -Z "*.png" -Z "*.pnm" -Z "*.Z" -Z "*.zip" \
-O ;
### Hier kommt der zweite Befehl (anderes Rootverzeichnis (-R)
dar \
-c "/home/BACKUP/www_$(date +%y%m%d_%H)" \
-R "/home" \
-w \
-s 734003200 \
-p \
-D \
-y \
-m 256 \
-Z "*.avi" -Z "*.bz2" -Z "*.gif" -Z "*.gz" \
-Z "*.jpg" -Z "*.mov" -Z "*.mpg" -Z "*.pbm" \
-Z "*.pdf" -Z "*.png" -Z "*.pnm" -Z "*.Z" -Z "*.zip" \
-O ;

Wie schreibe ich nun, das zuerst das obere, dann das untere, und dann (je nach Parameterübergabe aus der shell) ein shutdown -h now ausgeführt wird?
 
Nach einfach nach dem zweiten dar Befehl ein shutdown -h now einbauen. Evtl. noch ein if $1 == 'shutdown' oder so ähnlich reinbauen. Schon sollte es tun.
 
aber es tuts zu gut... das ist ja der Grund dieses Threads. Ich möchte mit dem Shutdown schon gerne warten, bis er das backup gemacht hat.
 
was sollen die ';' da? Dir ist schon klar, dass die in einem Bash-Script eine Bedeutung haben und zwar eine andere als in C oder Perl...

lass die weg und hau den shutdown dahinter, anschließend lies mal man bash bzgl. der ';'
 
ich hatte den Befehl in einer if Anweisung stehen, daher habe ich da am ende die ';' noch stehen.
 
du kannst die beiden dar-calls auch weiter vereinfachen ...

Code:
for i in verz1 verz2 verz3 ... verzN;  do
    dar \
    c "/home/BACKUP/www_$(date +%y%m%d_%H)" \
    -R "$1" \
    -w \
    -s 734003200 \
    ....
done

### hier testen ob dar beendet wurde

### shutdown einleiten

das spart Arbeit wenn sich Parameter ändern etc ...
 
oc2pus schrieb:
Code:
### hier testen ob dar beendet wurde

ich kenne dar nicht praktisch, aber ist das so ein doofes Tool, das im Background läuft auch wenn es nicht entsprechend aufgerufen wird?

also kein sinnvoller Unterschied zwischen
Code:
dar
und
Code:
dar &
wenn ja, dann ist das IMHO für ein Scritp ungeeignet, wenn nein, wo ist das problem, nach dem Call ist dar fertig...
 
dar ist ein Programm wie andere auch, es startet nicht im Hintergrund.
Wenn der Aufruf abgearbeitet ist, ist dar beendet.

Ich denke eher das script ist syntaktisch falsch, evtl wird das erwähnte if NIE ausgeführt, da die Bedingung immer false ist ...

ich verstehe auch nicht warum man nur die "Hälfte" des Scriptes postet ...

### hier testen ob dar beendet wurde
damit meinte ich den Test auf erfolgreiches Ende des backups.

ich nutze das dar selber, evtl schaust du mal in dieses script:
http://www.linuxclub.de/viewtopic.php?p=206964

du musst nur deinen shutdown am Ende einfügen ...

@TeXpert:
in dem obigen Thread ist auch noch dein weiser Rat gefragt !!
 
oc2pus schrieb:
dar ist ein Programm wie andere auch, es startet nicht im Hintergrund.
Wenn der Aufruf abgearbeitet ist, ist dar beendet.

dann ist dieser Test syntaktisch überflüssig, da Du davon ausgehen kannst das das Programm beendet wurde, also lässt sich das darauf reduzieren:

Code:
dar foobar
dar foo2
dar bar2
sudo shutdown -h now

das einzige wäre mit Überprüfung, wenn man die Konsistenz des Backups testen wollte, aber das wäre ja auch nur ein anderer dar foo2bar2 Aufruf...
 
TeXpert schrieb:
oc2pus schrieb:
dar ist ein Programm wie andere auch, es startet nicht im Hintergrund.
Wenn der Aufruf abgearbeitet ist, ist dar beendet.

dann ist dieser Test syntaktisch überflüssig, da Du davon ausgehen kannst das das Programm beendet wurde

d'accord, aber ein Test würde bei "misslungenem" backup einen shutdown optional halten können.
 
oc2pus schrieb:
ich nutze das dar selber, evtl schaust du mal in dieses script:
http://www.linuxclub.de/viewtopic.php?p=206964

du musst nur deinen shutdown am Ende einfügen ...

@TeXpert:
in dem obigen Thread ist auch noch dein weiser Rat gefragt !!

in dem Thread stecken zu wenig Infos drin, dafür müsste ich das ja richig nutzen und Debuggen ;) die awk-Spielereien ohne praktische Benutzung zu debuggen ist ohne Infos nicht möglich, Schreib mal in die Kommentare rein, wie die Ausgaben aussehen, dann denk ich da mal drüber nach :)...
 
TeXpert schrieb:
in dem Thread stecken zu wenig Infos drin, dafür müsste ich das ja richig nutzen und Debuggen ;) die awk-Spielereien ohne praktische Benutzung zu debuggen ist ohne Infos nicht möglich, Schreib mal in die Kommentare rein, wie die Ausgaben aussehen, dann denk ich da mal drüber nach :)...
fauler Hund ;)

OK, mach ich dann mal.
Bei mir funktioniert es, weil meine inkrementellen Backup-FIles jeden Tag geschrieben werden. Irgendwie hakt es wenn Lücken in den Backups vorhanden sind. Da fehlt eben die Sonderbehandlung ;)

Ich werde mal ein backup mit set -x mitschneiden und die Infos in dem Thread einfügen.
 
carsten schrieb:
TeXpert schrieb:
*pfeif* nein, ich fühle mich jetzt überhaupt nicht angesprochen.... *pfeif*
Och schaaaaaaddddeeeeeeeee

bring mir den geforderten Input und ich denke bei einer Tasse Kaffe darüber nach... aber ohne dar zu kennen müsste ich da zuuuu viel Zeit für aufwenden... da hilft auch kein betteln oder bestechen, obwohl Bestechung, hmmm.... ach nein auch keine Bestechung ;)
 
Oben