Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Besitzer einer Datei Mail schicken



Columbo0815
07-05-2003, 09:38
Hallo,
Premiere, dies ist mein erster Beitrag auf mrunix.de :cool:

Zu meinem Problem:

Ich habe auf einem Linuxrechner via Samba mit folgendem Script einen PDF-Drucker erstellt und ins Win-Netz freigegeben.

#!/bin/sh
DATE=`date +%b%d-%H%M%S`
OUTDIR=/pdf
ps2pdf $1 $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1

Klappt wunderbar! Ich will nun erreichen, dass der Ersteller der Datei, eben dieses erstellte Pdf gemailt bekommt. Wie kann ich das erreichen (ich habe von "scripten" leider keine Ahnung)? Der/die jenige, der auf dem Freigegebenen Drucker druckt, ist (soweit bin ich bereits) Besitzer der Datei, dh der user&group-Name stimmt mit dem Emailempfänger überein. Ich hab mir vorgestellt, dass der username der Datei ausgelesen wird und dann an "ausgelesenerusername@linux.rechner" gemailt wird. Danach kann das pdf gelöscht werden.

Danke und Gruß Columbo

anda_skoa
07-05-2003, 10:39
Probier mal das



USER=$(ls -l $1 | awk '{ print $3;'})


Das awk nimmt aus der Zeile des ls -l Outputs das dritte Feld.
Das ist normalerweise der Username

Ciao,
_

Columbo0815
07-05-2003, 13:28
Hi,

grundsätzlich bin ich schonmal einen Schritt weiter. Das hat geklappt, danke! Kleine Anpassungen musste ich vornehmen, sonst kam die Mail nicht an.

Ich hab jetzt folgendes dem Script hinzugefügt:

USER='ls -l $1 |awk '{ print $3;}''
mutt -n -F /dev/null -s "Anhang" -a $OUTDIR/$DATE.pdf $USER@mail.adresse
rm $DATE.pdf

Wenn ich nach dem "USER=" ein "$" (jeweils ohne "") gesetzt habe, kam die Mail nicht an. Mit dem " ' " kommt sie an, jedoch mit folgender Fehlermedlung im Text:

/usr/local//bin/printpdf.sh: }: command not found
Fehler in /dev/null, Zeile 1: Konnte: Unbekanntes Kommando
Fehler in /dev/null, Zeile 2: Konnte: Unbekanntes Kommando
Fehler in /dev/null, Zeile 3: n: Unbekanntes Kommando
Fehler in /dev/null, Zeile 4: Fehler: Unbekanntes Kommando
Fehler in /dev/null, Zeile 5: Fehler: Unbekanntes Kommando
usw.

Der Anhang ist dabei, der Empfänger stimmt. Ich habe sicher Fehler eingebaut, aber wo sind sie??

Danke und Gruß Columbo
Edit: Nach der "print" Zeile steht kein Anführungszeichen, sonder zwei '

anda_skoa
07-05-2003, 16:28
Original geschrieben von Columbo0815

Edit: Nach der "print" Zeile steht kein Anführungszeichen, sonder zwei '

Wenn man das auführen nicht mit $() macht, muss das äußere hier ein Backtick sein
also ` statt '

also


USER=`ls -l $1 |awk '{ print $3;}'`


Ciao,
_

Columbo0815
08-05-2003, 07:54
Hi,

also, nachdem ich zum xten mal überlegt hab, warum in der Mail "/usr/local//bin/pdfscript.sh" steht, hab ich mir die Samba-Config angesehen. Dort war der Verzeichnis-Fehler drin.

Für diejenigen, die das auch brauchen können, ich hab nun folgendes Script:



#!/bin/sh
DATE=`date +%b%d-%H%M%S`
OUTDIR=/pdf
ps2pdf $1 $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1
USER='ls -l $1 | awk '{ print $3;'}'
mutt -n -F /dev/null -s "Pdf" -a $OUTDIR/$DATE.pdf $USER@email.adresse
rm $DATE.pdf


Vielen Dank nochmal,
gruß Columbo

Columbo0815
26-06-2003, 07:44
Hallo,

kleines Update, weil das Script schließlich perfekt sein soll ;)

So sieht es zur Zeit aus:



#!/bin/sh
DATE=`date +%b%d-%H%M%S`
OUTDIR=/pdf
ps2pdf $1 $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1
USER=$(/bin/ls -l $OUTDIR/$DATE.pdf $1 | awk '{ print $3;'})
mutt -n -F /dev/null -s "Pdf- Nicht vergessen den Drucker zurückzustellen" -a $OUTDIR/$DATE.pdf $USER@localhost < /dev/null
rm $DATE.pdf


Nur zur Erläuterung:
Bisher hatte ich versäumt zu Erwähnen, dass das Script in /usr/local/bin liegt und printpdf.sh heißt. Ich habe via Samba einen Drucker freigegeben, der dieses Script ausführt, sobald auf dem Drucker gedruckt wird. An den Clients ist ein Postscript Drucker installiert (HP 8000er Treiber), damit das ganze im Postscript-Format ankommt.
Das Postscriptfile wird zuerst in .temp benannt, damit nicht jemand ein unfertiges PDF öffnet. Deshalt erst Umwandlung in .temp, danach Umbenennung nach .pdf

So, nun klappt es, dass prinzipiell jeder, der einen Druck auf diesen Samba-"Drucker" loslässt eine Mail bekommt, an der das PDF-File angehängt ist.

Störend ist nur, dass in jeder Mail folgender Text steht:

/bin/ls: smbprn.000177.JDVEnB: No such file or directory
Error in /dev/null, line 1: /bin/ls:: unknown command
Error in /dev/null, line 2: Error: unknown command

Ich habe im Script "/bin/ls" angegeben, da ich den gleichen Fehler schon bekommen habe, als ich nur "ls" angegeben habe. Hat aber nichts gebracht. Die Error in /dev/null gehen nun munter weiter, bis nach der 129 Zeile folgendes kommt:
source: reading aborted due too many errors in /dev/null

Habe ich einen Fehler in meinem Script? Wenn ja wo?
Danke und Gruß Columbo

PS: An dieser Stelle nochmal nachträglich vielen Dank an anda_skoa!

anda_skoa
26-06-2003, 09:44
Original geschrieben von Columbo0815
Hallo,

kleines Update, weil das Script schließlich perfekt sein soll ;)


Das wäre schon mal was für unser Sysadmin Forum :)



Störend ist nur, dass in jeder Mail folgender Text steht:

/bin/ls: smbprn.000177.JDVEnB: No such file or directory


Leite den Stderr des ls nach /dev/null um.
Ungefähr so


USER=$(/bin/ls -l $OUTDIR/$DATE.pdf $1 2> /dev/null | awk '{ print $3;'})




bekommen habe, als ich nur "ls" angegeben habe. Hat aber nichts gebracht. Die Error in /dev/null gehen nun munter weiter, bis nach der 129 Zeile folgendes kommt:
source: reading aborted due too many errors in /dev/null


das könnte schon von mutt kommen. Du hast mit -F das /dev/null als Configfile angegeben. Wenn er /dev/null lesen versucht, wird da keine Config drinnen stehen :)

Ciao,
_

Columbo0815
06-05-2004, 14:56
So. Auch wenn es schon ewig her ist, das Problem ist gelöst. Mein /dev/null "Device" war defekt. Neu angelegt, kommen in meinem Skript keine Fehler mehr.

Vielen Dank nochmal für die Unterstützung.

Gruß Columbo

Pingu
06-05-2004, 18:35
Hi,

ok offtopic: hättest Du nicht noch einen Tag warten können? Dann könntest Du gleich einjähriges Feiern *g*.

Pingu

Columbo0815
06-05-2004, 18:43
Original geschrieben von Pingu
Hi,

ok offtopic: hättest Du nicht noch einen Tag warten können? Dann könntest Du gleich einjähriges Feiern *g*.

Pingu

:eek: Tatsache, das war echt unbeabsichtigt.. Unglaublich. Aber nach einem Jahr läufts nun. Und es war mehr als banal! Herausgefunden habe ich es, weil der ssh-Daemon nicht starten wollte.

Gruß Columbo