OpenVZ: Einen Befehl in jedem Container ausführen

Guten Tag,

wie kann ich einen Befehl in jeder virtuellen Machine bzw. in jedem virtuellem Server ausführen?

In diesem Tutorial möchte ich ein Script vorstellen, dass genau auf diese Frage eine Antwort liefert.

 

1. Editor öffnen:

nano /root/script/execCommandAllVM.sh

2. Fügen folgenden Inhalt ein:

#!/bin/bash
comment=$1
CTIDS=$(vzlist | awk '{print $1}' | sed -e '/CTID/d' -e ':a;N;$!ba;s/\n/ /g' )
echo "$CTIDS "
CTIDarray=($CTIDS)
for x in ${CTIDarray[@]}
do
 echo "----------------------"
 echo $x $(vzctl exec $x hostname)
 echo "----------------------"
 vzctl exec $x $comment
 echo "---------------------------------------------------------------- $x END"
done

Speichern mit STRG+O ab & verlassen mit STRG+X das Programm.

3. Dem Script Rechte geben:

chmod 700 /root/script/execCommandAllVM.sh

4. Script ausführen:

/root/script/execCommandAllVM.sh "<BEFEHL/BEFEHLE>" 

Beispiel: (Führt ein Update auf allen Servern aus. )

/root/script/execCommandAllVM.sh "apt-get update;apt-get upgrade -y"

 

Beim Befehl „free -m“ siehts zum Beispiel bei einem meiner Server so aus:
openvz-execCommandAllVM

Kommentar hinterlassen