PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textteile aus Liste filtern



muellners
14-02-2005, 20:34
Hallo,

habe mit 'find' eine Liste erstellt (aus dem Home-Verzeichnis):

./hans/daten....
./hans/ordner/....
./hans/ordner2/...
./martin/meinedaten
./franz/....
./franz...
....

ich möchte nun die usernamen ( hans, martin, franz, usw. ) nacheinander als Variable einlesen und an einige eine Mail schicken.(einige davon ausschliessen)

grep "$variablenname" | mail -s "Nachricht" $variablenname

hätte da jemand eine Idee ???

--------------------
muellners

Hans-Georg Normann
14-02-2005, 22:03
Ich versteh nicht, wozu du die Liste benötigst.
cd /home
USERLIST=$(ls)
for aUSER in $USERLIST do
#kein Verzeichnis, d.h. Muell
if [ ! -d $aUSER }; then
continue
fi
//mach irgendetwas
//und schliesse aus, etc
doneSollte so auch gehen

Hans

muellners
15-02-2005, 04:56
Die liste benötige ich, weil in unserem Firmennetz viele Daten gespeichert werden, die auf dem Server nichts zu suchen haben.
Mit einem 'find' Aufruf, suche ich nach den Daten, nun möchte ich jedem usen mitteilen, das folgende Daten nichts aud dem Sever zu suchen haben.
Jeder soll natürlich nur seine Daten sehen.
Find ich ist feiner als Administrativ einfach fragwürdige Daten zu entfernen, die meisten machen sich ja keine Gedanken was sie da so speichern.

Hans-Georg Normann
15-02-2005, 17:30
Jo, jetzt wird es klarer. Ich weiß allerdings noch nicht, welche Dateien vorhanden sein dürfen. Ist das von User zu User unterschiedlich oder haben alle User die gleichen Rechte?

Wens kompliziert wird, würde ich zu awk tendieren. Lass mal hören, was da so anliegt und wie du dir das so in etwa die Abfrage vorgestellt hast.

Hans

Romanday
15-02-2005, 19:30
Find ich ist feiner als Administrativ einfach fragwürdige Daten zu entfernen, die meisten machen sich ja keine Gedanken was sie da so speichern.

Was verstehst Du unter fragwürdig?
Dateigröße, Inhalt, Dateiname?

muellners
16-02-2005, 04:58
Bei der Firma handelt es sich um eine Behörde, der Dienstvorgesetzte hat ausdrücklich untersagt, *.pps Dateien auf dem Server zu speichern ( hat schon mal eine Virenverseuchte Datei gegeben).
Da es mich als Administrator nicht interessiert und auch nichts angeht, was die user in Ihrem Heimatarchiv haben, möchte ich die Suche und Benachrichtigung der user per Skript durchführen.

Hans-Georg Normann
16-02-2005, 21:40
Na ja, das kann aber für .doc, .xls, etc. auch zutreffen. :eek: Wenns doch eine eindeutige Anweisung ist, dann wäre ich nicht so zimperlich. Mit
find /home -iname *.pps -exec rm {} \;würde ich da schnell Klarheit schaffen. Aber lassen wir das. Mit
find /home *.pps -print|sort > /tmp/fileList.adminhast du eine schön sortierte Liste vorliegen. Die beackerst du mit folgendem awk Script.
// { SearchUser() }

BEGIN {
newUser=""
oldUser=""
aFiles=""
}

END {
if (aFiles != "") {
SentMail(oldUser)
}
}

function SearchUser() {
aFile = $0
split($0, aFields, "/")
newUser = aFields[2]
if (newUser != oldUser)
{
SentMail(oldUser)
aFiles=aFile
}
else
{
aFiles=sprintf("%s\n%s", aFiles, aFile)
}
#SentMail(oldUser)
}


function SentMail(fUser) {
if (oldUser == "") {
oldUser=newUser
print "init name"
return
}

### hier mailkommando einbauen system(/usr/bin/............)
printf("Hallo %s\n\nSie haben unerlaubte Dateien gespeichert....\n%s\n", fUser, aFiles)
###

oldUser=newUser
aFiles=""
}Der Aufruf ist
awk -f mail_was.awk /tmp/fileList.adminDu musst eigentlich nur noch die Funktion SentMail() anpassen.

Hans