Zum Inhalt springen

Oder-Bedingung mit grep

Eigentlich total einfach, aber für jemanden der’s noch nicht kennt eventuell eine große Hilfe:

smbstatus -p|egrep „(pc007|pc008|PID|—)“

Dieser kleine Befehl liefert folgende Ausgabe:

PID Username Group Machine
——————————————————————-
3812 user7 smbusers pc007 (192.168.10.107)
18721 user8 smbusers pc008 (192.168.10.108)
12583 user8 smbusers pc008 (192.168.10.108)

Alternativ kann man auch „grep -E“ verwenden, kommt auf’s selbe raus.
Durch die Pipe („|“) werden die einzelnen Parameter als Oder-Bedingung gewertet und entsprechend nur jene Zeilen angezeigt in denen einer der vier Werte vorkommt.

Somit kann man recht einfach aus der Liste die „smbstatus -p“ ausgibt die gewünschten beiden User ermitteln die auf den beiden Rechnern angemeldet sind. Der Teil „PID“ und „—“ dient lediglich der Übersichtlichkeit – soll das ganze per Script weiterverabeitet werden, würde ich den Teil natürlich weg lassen.

Will man jetzt genau wissen welche Dateien im Moment von den beiden Benutzern geöffnet sind, dann erweitert man das ganze wie folgt:

for P in $(smbstatus -p|grep -E „(pc007|pc008)“|awk ‚{print $1}‘); do smbstatus -L|grep „^$P“;done

Und das Ergebnis könnte dann wie folgt aussehen:

18721 1000 DENY_WRITE 0x2019f RDWR NONE /srv/samba Tslca/Ladeauftrag.odt Tue Feb 17 15:47:31 2009
18721 1000 DENY_WRITE 0xa1 RDONLY NONE /srv/samba tcaro.ods Tue Feb 17 08:32:06 2009

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert