Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
oln
- Beiträge: 379
- Registriert: 05.01.2021 09:41:24
Beitrag
von oln » 14.03.2023 08:03:15
Moin,
ich habe zwei kleine Scripte die meine VMs pausieren lassen und wieder starten. Das benötige ich, um dann ein Backup der VMs zu erstellen.
Hier die Scripte:
Zum schlafen legen.
Code: Alles auswählen
#!/bin/bash
for VM in $(/usr/bin/virsh list --name); do
if [[ "$(/usr/bin/virsh domstate ${VM})" == "running" ]]; then
/usr/bin/virsh suspend ${VM}
fi
done
Zum aufwecken
Code: Alles auswählen
#!/bin/bash
for VM in $(/usr/bin/virsh list --name); do
if [[ "$(/usr/bin/virsh domstate ${VM})" != "running" ]]; then
/usr/bin/virsh resume ${VM}
fi
done
Nun habe ich einen neuen Server bekommen und der ist in deutsch installiert worden. Da kommt dann nicht "runnig" sondern "laufend" raus. Der nächste Server könnte in spanisch sein.
Wie könnte man das sprachunabhänging gestalten?
Zuletzt geändert von
oln am 14.03.2023 08:26:38, insgesamt 1-mal geändert.
-
niemand
- Beiträge: 16800
- Registriert: 18.07.2004 16:43:29
Beitrag
von niemand » 14.03.2023 08:08:57
Üblicherweise nimmt man den Rückgabewert, der sollte bei Erfolg der Abfrage 0, und in jedem anderen Fall ≠0 sein. Ob sich virsh an diese Konvention hält, weiß ich nicht – aber das lässt sich ja fix rausfinden.
Tipp des Tages: stundenlanges Warten auf Antwort in einem Forum kann dir fünf Minuten Ausprobieren ersparen!
-
MSfree
- Beiträge: 9214
- Registriert: 25.09.2007 19:59:30
Beitrag
von MSfree » 14.03.2023 08:13:50
oln hat geschrieben: 
14.03.2023 08:03:15
Zum schlafen legen.
Code: Alles auswählen
#!/bin/bash
for VM in $(/usr/bin/virsh list --name); do
if [[ "$(/usr/bin/virsh domstate ${VM})" == "running" ]]; then
/usr/bin/virsh suspend ${VM}
fi
done
Ich bin mir ziemlich sicher, daß das "if" überhaupt nicht nötig ist. Im schlimmsten Falle legst du eine VM schlafen, die bereits schläft. Das sollte eigentlich kein Problem sein:
Code: Alles auswählen
#!/bin/bash
for VM in $(/usr/bin/virsh list --name); do
/usr/bin/virsh suspend ${VM}
done
Zum Aufwecken das gleiche in grün.
-
oln
- Beiträge: 379
- Registriert: 05.01.2021 09:41:24
Beitrag
von oln » 14.03.2023 08:26:12
MSfree hat geschrieben: 
14.03.2023 08:13:50
Ich bin mir ziemlich sicher, daß das "if" überhaupt nicht nötig ist. Im schlimmsten Falle legst du eine VM schlafen, die bereits schläft. Das sollte eigentlich kein Problem sein:
Code: Alles auswählen
#!/bin/bash
for VM in $(/usr/bin/virsh list --name); do
/usr/bin/virsh suspend ${VM}
done
Zum Aufwecken das gleiche in grün.
Wie recht du hast. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Danke.
-
bluestar
- Beiträge: 2126
- Registriert: 26.10.2004 11:16:34
- Wohnort: Rhein-Main-Gebiet
Beitrag
von bluestar » 15.03.2023 11:19:09
oln hat geschrieben: 
14.03.2023 08:03:15
Wie könnte man das sprachunabhänging gestalten?
Du kannst ein
benutzen
-
oln
- Beiträge: 379
- Registriert: 05.01.2021 09:41:24
Beitrag
von oln » 15.03.2023 14:54:51
bluestar hat geschrieben: 
15.03.2023 11:19:09
Du kannst ein
benutzen
Wie müsste ich mit das in meinem Script vorstellen?