From: Mark Seuffert (Pirates) (captain_at_pirate.de)
Date: 12. Oct 1998
Hai,
anbei ein Script das User auf TTY11 anzeigt, ausserdem hervorhebt wenn
sich jemand ein/ausloggt (+Piepston).
Ist noch etwas zu verbessern.... vielleicht kennt sich jemand mit RE
(Regular Expression) in Shellscripts aus:
1. Die Ausgabe von diff, ob jemand beispielsweise neu eingeloogt ist,
hat noch die Dateiposition... die soll raus.
2. Ausserdem soll auch in der Funktion getusers(), der Perl Aufruf
ersetzt werden durch eine Shell-Script-Variante von RE.
Thx!
--schnipp--Datei:check4newuser--
#!/bin/bash
# This script checks for newly logged in or
# recently logged out users and display them to TTY11
# (c) October 1998 Moak <captain_at_pirate.de>
PATH=/bin:/usr/bin
export PATH;
file1=/tmp/check4newusers1.$$
file2=/tmp/check4newusers2.$$
sleep=10
# sleep=60
trap "rm -f $file1 $file2;clear>/dev/tty11;exit" 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18
getusers () {
who|perl -pe '
if(/^(.{9,9}).{3,3}(.{2,2})/){
$line=$1 . " " . $2;
if(/\(([^)]*)\)$/){
$line.=" ".$1;
}
$line=~s/\t/T/g;
$line=~s/(\S)\s+?(\S)/$1 $2/g;
print "$line\n" ;
$_="";
}
'|sort|uniq > "$1"
}
getusers $file1
while [ 1 -eq 1 ];do
echo Currently users online: > /dev/tty11
getusers $file2
diff=`diff $file1 $file2`
if [ ! -z "$diff" ];then
login=`echo $diff|grep '>'`
if [ ! -z "$login" ];then
echo ^G > /dev/console
echo login:$diff > /dev/tty11
echo > /dev/tty11
else
echo ^G > /dev/console
echo logout:$diff > /dev/tty11
echo > /dev/tty11
fi
else
echo > /dev/tty11
fi
mv $file2 $file1
cat $file1 > /dev/tty11
sleep $sleep
clear > /dev/tty11
done
--schnapp--
Gruss, /\/\ a r k
-- Pirates Communication Kreative Software & Internet Wilhelmstrasse 5 http://www.pirate.de D-69115 Heidelberg fone: 06221/601875 fax: 06221/601876 . . . . . . . . . . . . . _.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.´(._.Wir koennen einem anderen nichts nuetzen, sofern wir nicht den Weg zu seinem Herzen finden. (Christoph Martin Wieland)
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET