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
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