PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sicherungsscript



WhoAmIClay
18.03.15, 14:37
Moin Moin,

folgende Situation:

Ubuntu Server mit mehreren laufenden VM’s mittels QEMU/KVM.

Diese sollen nachts gesichert werden, momentan habe ich ein Script welches je nach VM bestimmte Aktionen tätigt, also z.B.
-> Fall 1: Snapshot auf das entsprechende LV, scp img-file, Snapshot beenden
-> Fall 2: oder z.B. mittels SSH in die VM, Datenbank beenden, Snapshot auf’s LV, scp img-file, Datenbank wieder beenden, Snapshot beenden
-> Fall 3: oder z.B. Snapshot auf das LV, img-file via loop device mounten, bestimmte Dateninhalte mittels rsync mit einer sicherung abgleichen, umount , Snapshot beenden

Das Sicherungsscript ruft wieder verschiedene andere Scripte auf welche die entsprechende Sicherung einer VM tätigt

Es besteht die Notwendigkeit an verschiedenen Tagen unterschiedliche Aktionen zu tätigen, z.B. Sicherung der VM 1 nur Sonntags nachts

Momentan sieht der Rahmen für dieses Script folgendermaßen aus ( exemplarisch )

Config File ( Arrayname:welche VM?;welches Sicherungsscript )

Tuesday=("vm1;sich_ssh" "vm2;sich")
Wednesday=("vm1;sich_db" "vm2;sich" "vm3;sich")

SicherungsScript

#!/bin/bash
#
source /devel/test.conf
day=`date +%A`

for ((n=0;n<${#day };n++))
do
temp=$day[$n]
name=$(echo $temp | cut -f1 -d ';')
sich=$(echo $temp | cut -f2 -d ';')
/devel/$sich $name
done

Hier die erste Frage dazu:
Ist es irgendwie möglich den Arrayname über eine Variable zu steuern, also das er z.B. am Tuesday das Array Tuesday aus der conf-Datei nimmt um die for schleife zu steuern?

Die zweite Frage , die wichtigere:

Für den Fall das dieses Sicherungsscript aus irgendeinem Grund gestoppt werden muss ( z.B. USV initiiert einen Shutdown des Servers) wie ist es möglich das auch die gestarteten Unterprozesse ihre Aktionen rückgängig machen.

Bei einem Kill auf das Sicherungsscript soll das aktuell laufende Unterscript sauber beendet werden, also z.B. bei Fall 3 soll der rsync beendet werden, ein umount durchgeführt werden und das Snapshot beendet werden.

Vielen Dank

DrunkenFreak
18.03.15, 15:28
Wenn ich das richtig verstehe, möchtest du Signale in deinen Skripten abfangen und danach Aktionen ausführen. Dafür ist trap gedacht.

WhoAmIClay
23.03.15, 09:08
Ok, verstanden. Werde mich in diese Richtung dann einlesen.

Wie kann ich dann die Aufgaben entgegengesetzt (rekursiv (?)) wieder rückgängig machen? Rsync beenden, umount durchführen und Snapshot beenden?