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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.