Reicht dir das Skript als Anfang?
Ist statisch, kann aber mit Übergabeparameter dynamisch gehalten werden.
Einzig und alleine die ersten SEKUNDEN bleibt es "kurz" stehen. Diesen
unschönen Bug hab ich jetzt auf die schnelle nicht behoben bekommen. Da
fehlt noch was initiales mit
if [ $i == 0 ]
Wenn der Bug behoben ist, hast du deinen Zyklus!
Gruß
Hendrik
-----
#! /bin/bash
# Deklaration
ROOM='raum110' # sollte als Übergabeparameter übergeben werden
PRINTER_KEYWORDS='sw|farbe' # Mit Pipe getrennte Keywords die Drucker
definieren, oder alle drucker in einen HW-Gruppe namens drucker,
printers, whatever
declare -a IP # Array mit IPs
# IP-Adressen raumbezogen aus workstations lesen und ins Array packen
IP=(`grep -Ev $PRINTER_KEYWORDS /etc/linuxmuster/workstations |grep
$ROOM |cut -d ";" -f 5`)
# Wartezeit zwischen den Zyklen
SECS=2
# Länge des IP Arrays
IP_LENGTH=${#IP[@]}
# Anzahl der Host pro Zyklus
HOSTPERCYCLE=10 # sollte ebenfalls per Übergabe geregelt werden
# Zyklen
CYCLES=$(($IP_LENGTH / $HOSTPERCYCLE))
for i in `seq 0 $IP_LENGTH`
do
COMPARE=$(($i % $HOSTPERCYCLE))
if [ $COMPARE = 0 ]
then
sleep $SECS
fi
echo ${IP[$i]}
done
----
Am 07.02.2015 um 14:39 schrieb Michael Hagedorn:
> Hi.
>> Ich würde es aber sinnvoller finden, wenn man einen Raum übergibt, das
> Ja, das war auch meine erste Idee .... aber ich hatte aber vorher schon
> _zwei_ andere "statische" Versionen - getrennt nach Räumen. Die habe ich
> dann zusammengepackt und EINE Datei mit Menu daraus gemacht. Daher
> findet man hier einige "gewachsene Strukturen". Da geht wie gesagt
> sicher einiges eleganter...
>
>
> In einem anderen Script hatte ich schon mal diese Syntax benutzt:
> -------------------------------------------------------------------
> # gr. Raum per WOL aufwecken: Hier eintragen welche Gruppe und wieviele
> Clients darin sind:
> Gruppe="raum2";
> Anzahl="34";
>
> for((i=1;i<$Anzahl+1;i++)); do
> IPadr="$(grep $Gruppe /root/linbo/workstations |cut -d ";" -f 5 |head -n
> $i |tail -n 1)";
> Macadr="$(grep $Gruppe /root/linbo/workstations |cut -d ";" -f 4 |head
> -n $i |tail -n 1)";
> echo $IPadr $Macadr $Gruppe $Anzahl;
> ---------------------------------------------------------------------------
> Allerdings hilft das hier nicht viel weiter, weil ich ja "8er Päckchen"
> brauche. Daher wiederholt sich der Abschnitt in dem Script nun auch ...
> vielleicht geht da ja irgendwas mit (modulo 8)!??
>
>> Skript die Workstationsdatei nimmt, alle Hosts (bis auf z.B. den
>> Drucker)
> Ja -- genau an solchen Details hängt's dann ...
> Evtl will man ja auch nicht seine VM, die als Vorlage dient, mit
> aktualisieren ... oder aber die LehrerPCs kommen später dran oder was
> weiß ich. Daher habe ich's getrennt bzw statisch gelassen. Die
> IP-Adressen unserer Räume ändern sich nicht.
>
>> und dieses Array abgearbeitet wird.
>> So wird das ganze dynamisch und nicht so statisch und du ersparst dir
> Gerne auch konkreter in Form von ein paar Zeilen Code :)
>
> Michael
>
>
>
>
>
--
Hendrik Hagenow
zweiteSchule gemeinnützige GmbH
Weinbergstraße 5
D-77933 Lahr
Mobil: +49 (0) 176 810 151 91
Mail: [email protected]
Web: http://www.2schule.de
Ust-ID: DE 273417204
Registergericht: Amtsgericht Freiburg, Registernummer: HRB 705635,
Geschäftsführer: Stefan Grözinger
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user