Wer besonders viele Rechner zu verwalten hat, kann diese im Rexfile in einer Gruppe zusammenfassen:
group "intranet" => "marvin", "zaphod";
Diese Zeile muss noch vor dem ersten Task stehen. In diesem Beispiel entsteht eine neue Gruppe namens
»intranet
«
, die aus den beiden Computern
»marvin
«
und
»zaphod
«
besteht. Sofern die Rechnernamen eine fortlaufende Nummer tragen, wie etwa
»client01
«
bis
»client05
«
, funktioniert auch eine kürzere Notation:
group "intranet" => "client[01..05]";
Beim Aufruf von
»rex
«
genügt es dann, die Gruppe anzugeben:
rex -G "intranet" uptime
und schon führen alle darin befindlichen Rechner die Aktion
»uptime
«
aus. Aber auch diese Angabe kann sparen, wer die Aufgabe
»uptime
«
im Rexfile auf die Gruppe
»intranet
«
beschränkt:
task "uptime", group => "intranet", sub { ...
Jetzt genügt an der Kommandozeile sogar ein simples:
»rex uptime
«
. Mehrere Gruppen notiert man in eckigen Klammern:
task "uptime", group => ["intranet", "buchhaltung"], sub { ...
Anstelle der Gruppe darf der Anwender auch einfach die betroffenen Rechner auflisten:
task "uptime", "marvin", "zaphod", sub { ...
Rex ist ziemlich redselig und schreibt jede seiner Aktionen ins Terminal. Damit man dabei nicht den Überblick verliert, veranlasst die folgende Anweisung Rex dazu, alle Meldungen zusätzlich auch in eine Datei:
logging to_file => "rex.log";
oder ins Syslog zu schreiben:
logging to_syslog => "local0";
Eine der beiden Zeilen gehört wieder ins Rexfile vor den ersten Task. Doch Vorsicht: In beiden Fällen landen nur die von Rex selbst erzeugten Meldungen in den Log-Dateien. Die zurückgelieferte Uptime etwa erscheint nur im Terminal, also der Standardausgabe (wie Abbildung 2 beweist). Das mit allen vorgestellten Funktionen erweiterte Rexfile zeigt Listing 2 .
Listing 2
Erweitertes Rexfile für uptime