vzexecall: einen Shell-Befehl in allen OpenVZ VE's ausführen

December 01, 2013

Reading time ~1 PLUGIN_READINGTIME.MINUTE

Wer einen dedizierten Server mit OpenVZ Gästen betreibt ist des öfteren in der Situation, einen Befehl in jeder virtuellen Umgebung (VE) einzelnen auszuführen, beispielsweise eine Paketinstallation mit apt-get. Folgende simple bash Funktion ermöglicht genau dies: einen Befehl in allen laufenden VPS unter einmal auszuführen.

  1. die Funktion der eigenen .bashrc hinzufügen

    cat >>~/.bashrc <<EOF
    
    # execute on all running vz containers
    execAllVZ() {
    for ctid in \`cat /proc/vz/veinfo | awk '{print \$1}' | egrep -v '^0$' | sort\`; \\
    do echo "*** CTID \$ctid: \$*"; vzctl exec \$ctid \$*; done
    }
    alias vzexecall=execAllVZ
    EOF
  2. die .bashrc erneut einlesen

    source ~/.bashrc
  3. Befehl ausprobieren

    vzexecall uptime
    vzexecall uname -a

Künftig steht dann der Befehl nach jedem Login zur Verfügung. Getestet mit Debian Wheezy, sollte aber (ggf. nach einer kleinen Anpassung an Systemgegebenheiten) auch in anderen Betriebssystemen wie Ubuntu, Linux Mint, Fedora, CentOS und anderen funktionieren.

Hinweis: dieser Artikel ist ursprünglich auf dem IT-Blog "copy/paste" (www.copypaste.at) erschienen.

comments powered by Disqus

Vevo - Universal Music und YouTube starten gemeinsames Musikportal

Das neue Musikvideoportal Vevo geht mit Jahresende an den Start, und wird als Art YouTube mit Premiumqualität etabliert werden. Während Goog…… Continue reading

Geschenkt: Heartomics

Published on January 11, 2017

Geschenkt: Football Mogul 2014

Published on October 24, 2016