Hi,
kurzes googeln ergab folgenes shell-skript:
#! /bin/bash
zeit_datei=/home/austausch/.letzter_lauf
if test -f $zeit_datei; then
find_opt="-newer $zeit_datei""
else
find_opt=
fi
n_dateien="`find /home/austausch/username -type f $find_opt -print`"
if test -n "$n_dateien"; then
echo "neue Datei" | smbclient -U user -M /dev/null || \
echo $n_dateien | mail -s "neue Datei" user@host
fi
touch $zeit_datei
exit 0
Die Nachrichten gehen hier per smbclient raus, sind also für Win*-PCs gedacht. Wenn das schiefgeht (z. B. weil der PC nicht an ist), wird die Nachricht per E-Mail abgeschickt.
Das zu überwachende Verzeichnis sowie die Mailadresse müssen noch an die konkrete Umgebung angepasst werden. Der Name der Datei, deren Modifikationsdatum als Vergleich benutzt wird ($zeit_datei), kann eigentlich beliebig gewählt werden. Wichtig für eine korrekte Funktion ist, dass nicht andere Prozesse die Modifikationszeit ändern.
Das ist schonmal ganz praktisch. Du wolltest allerdings eine Benachrichtigung bei der Anmeldung.
Mein erster Gedanke dazu wäre: Mach Userbasierte Logonscripte (über die smb.conf).
Dann das Script so modifizieren dass die PCs nicht angeschrieben werden oder eine Mail verschickt wird sondern das LogonSkript aller user verändert wird.
In das Logonskript kann man dann zusätzlich zu einem Befehl zur Benachrichtigung noch einen Befehl packen der diese Änderung am Logonscript wieder Rückgängig macht. Das würde sicher stellen das jeder Benutzer die Nachricht genau einmal erhält, egal wie lange nach der Änderung im Ordner er sich anmeldet.
Man bräuchte dann nur noch einen geeigneten Befehl zur Benachrichtigung. Keine Ahnung ob man auf einfache Weise ein Windowspopup realisieren kann - die einfachste Lösung ist eine Textdatei aufspringen zu lassen.
Das Script auf dem Server müsste dann nur noch per CronJob in gewünschten Abständen ausgeführt werden.
Wenn du die Änderungen sehr zeitnah mitbekommen möchtest ist "Iwatch" dein Stichwort. Ist ein Tool zur Überwachung in Echtzeit, aber nicht so ressourcenverbrauchen wie ein cronjob im 5-sekundentakt, da das OS sowieso alle Änderungen mitbekommt.
Auch noch interessant sind die Befehle preexec und postexec in der smb.conf. Damit könntest du das Problem auch lösen falls die die Sache mit den Logonskripten nicht gefällt. Die hätte auch ein paar Nachteile, z.B. fällt mir da ein dass dann der User Schreibrechte in seinem Logonskript benötigt.
Gruß
Onno