So, ich habe das gerade noch einmal zu Hause getestet:

function is_mac {
  mac="$1"
  echo "$mac" | grep -q -E "^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$"
  return $?
}

Das Grep-Pattern sollte man noch in Anführungszeichen setzen. Ansonsten
funktioniert das 1a :-)

LG Yannik

Am 17.05.2015 um 18:00 schrieb Yannik Sembritzki:
> Für die MAC noch ein Tipp:
>
> function is_mac {
> mac="$1"
> echo "$mac" | grep -q -E ^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$
> return $?
> }
>
> Und dann
>
> users=$(chilli_query list | grep pass | awk '{print $6}' )
> echo "Die folgenden Benutzer sind angemeldet: $users"
>
> echo
> echo "Die User werden abgemeldet:"
> echo "==========================="
>
> for user in $users; do
> if is_mac "$user"; then
> echo "$i ist eine MAC und bleibt angemeldet!"
> else
> echo "User-Name=$user" | radclient -x 127.0.0.1:3779 disconnect
> "$secret" | grep User-Name
> fi
> done
>
> Das ist jetzt nur schnell auf dem Handy aus dem Kopf getippert, kann
> also sein, dass da noch ein paar kleinere bugs drin sind. Vom Prinzip
> her sollte es aber so gehen.
>
> LG Yannik
> -- 
> sent from mobile
>
> Am 17. Mai 2015 17:22:03 MESZ, schrieb Michael Hagedorn
> <[email protected]>:
>
>     OK!
>
>     Hier Version 1.0 beta .... funktioniert und macht genau das, was es
>     soll! Ich konnte allerdings noch keinen Massentest durchführen sondern
>     habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers
>     abwechselnd benutzt ... anders ging es nicht (remote + Wochenende)
>
>     ------------------------------------------------------------------------
>
>
>     Scriptname: disconnect-user.sh <http://disconnect-user.sh>
>     Cronjob: in jeder großen Pause und am Ende des Tages!
>
>
>     #!/bin/bash
>
>     # Radiussecret wird automatisch ausgelesen:
>     secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d "\"" -f 2)
>
>     # Liste aller angemeldeten WLAN-User, die  in den Pausen disconnected
>     # werden sollen.
>     # User die nur als "MAC-Adresse" auftauchen duerfen ohne Auth ins WLAN.
>     # Diese sollen beim disconnect natürlich unberücksichtigt lassen.
>
>     echo
>     echo
>     echo "Folgende User sind angemeldet:"
>     echo "
>     ------------------------------------------------------------------------
>     "
>     LIST=$(chilli_query list | grep pass | awk '{print $6}' )
>     echo $LIST
>
>     echo
>     echo "Die User werden abgemeldet:"
>     echo "==========================="
>
>     for i in $LIST
>      do
>       # Wenn Username eine MAC-Adr ist, ist er 18 Zeichen (incl CR) lang --
>       # sonst nur 6 (bzw 7); geprüft wird daher auf 12 Zeichen:
>       userlength=$(echo $i | wc -c)
>       if [ $userlength -gt 12 ]
>        then
>         echo "$i bleibt angemeldet!"
>        else
>         #echo $LIST
>         echo "User-Name=$i" | radclient -x 127.0.0.1:3779 disconnect
>     "$secret" | grep User-Name
>       fi
>      done
>     echo
>     echo
>     echo "Nach 'disconnect' sind noch angemeldet:"
>     echo "
>     ------------------------------------------------------------------------
>     "
>     chilli_query list | grep pass | awk '{print $6}'
>
>     echo
>     echo
>
>     exit 0
>
>     ------------------------------------------------------------------------
>
>
>     Zusätzlich habe ich einen Code-Schnipsel von Jesko (?) benutzt, der alle
>     angemeldeten User übersichtlich und mit
>     allen notwendigen Angaben anzeigt:
>
>     Scriptname: user-online.sh <http://user-online.sh> (für root!)
>
>
>     #!/bin/bash
>     echo
>     echo "Folgende User sind angemeldet:"
>     echo "
>     ------------------------------------------------------------------------
>     "
>     echo
>
>     chilli_query list | grep pass | awk 'BEGIN {printf("%10s %18s %30s %45s
>     \n" ,"USER", "IP", "MAC", "Initial-URL")} {printf("%10s %18s %30s %45s
>     \n", $6, $2, $1, $15)}'
>     echo
>     echo
>
>     ------------------------------------------------------------------------
>
>
>     Damit läßt sich doch jetzt was anfangen!
>     Tip-Top!
>
>     Michael
>
>
>
>
> _______________________________________________
> linuxmuster-user mailing list
> [email protected]
> https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user

_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user

Antwort per Email an