PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : samba/cups/pdf-server



Sonny
21.10.02, 15:12
Hallo,

ich habe einen SAMBA/CUPS Server der aus einer ps eine pdf Datei macht.
Leider wird aber diese Datei immer überschrieben und ich würde gern
den Namen durch z.B. eine Zeit ergänzen, was aber nicht funktioniert.

print command = rm /tmp/PDF/%s,pdf;ps2pdf %s /tmp/PDF/%U.%T.pdf; rm %s

%T erzeugt einen Namen mit / , was wohl als Pfad gedeutet wird.

Hat jemand eine Idee dazu?

Gruss
Sven

[WCM]Manx
21.10.02, 15:59
Hi!

Versuche vielleicht mal den Zeitstempel über "date" (man date für die Optionen) reinzubekommen.

mit touch funktioniert's mal:


linux:/var/test # touch test`date +%d-%m-%T`.txt (Backticks, kein Hochkomma!)
linux:/var/test # ls
. .. test21-10-17:11:34.txt
linux:/var/test #


In deinem Falle:
print command = rm /tmp/PDF/%s,pdf;ps2pdf %s /tmp/PDF/%U.`date +%d-%m-%T`.pdf; rm %s

Grüße

Manx

Sonny
21.10.02, 16:07
danke, soweit ich weis, wird aber in der print zeile nicht wie in einer shell interpretier.
oder ich rufe einfach ein script auf, mal testen ob das geht.

Jasper
21.10.02, 16:18
Original geschrieben von Sonny
danke, soweit ich weis, wird aber in der print zeile nicht wie in einer shell interpretier.
oder ich rufe einfach ein script auf, mal testen ob das geht.

'print command' wird per system() in einer shell ausgeführt, also sollte manx' version funktionieren.

ich persönlich würde die befehle per '&&' veketten und keine backticks verwenden. ausserdem solltest du kritische filenamen, die u.U. leerzeichen enthalten könnten, in anführungszeichen setzen.

-j

Sonny
21.10.02, 16:36
print command' wird per system() in einer shell ausgeführt, also sollte manx' version funktionieren.

# verstehe ich nicht. was ist manx?



ich persönlich würde die befehle per '&&' veketten und keine backticks verwenden. ausserdem solltest du kritische filenamen, die u.U. leerzeichen enthalten könnten, in anführungszeichen setzen.

also so:

rm date & ps2pdf datei

oder wie? was ist der Vorteil?

Jasper
21.10.02, 16:58
print command' wird per system() in einer shell ausgeführt, also sollte manx' version funktionieren.

# verstehe ich nicht. was ist manx?


das ist das nette wesen, das zuerst auf deine frage geantwortet hat.



rm date & ps2pdf datei

oder wie? was ist der Vorteil?

eher so:

rm date && ps2pdf datei

ps2pdf wird nur ausgeführt, wenn 'rm datei' keine fehler produziert hat. besseres beispiel ist:

ps2pdf bla.ps bla.pdf && cp bla.pdf /archive

so wird nur kopiert, wenn auch wirklich ein pdf erstellt wurde. mit ';' würde immer kopiert werden, egal ob es was zum kopieren gibt oder nicht.

da fällt mir ein, es könnte allerdings auch sein, dass du immer löschen willst (sozusagen als 'aufräumer'), dann ist ';' zum verketten besser.

-j

Sonny
21.10.02, 17:16
Ich will tatsächlich ausräumen......danke für die Erklärung.

Warum würdest du keine backticks verwenden?
Ohne den Dingern wird doch nichts ausgeführt, oder?

Jasper
21.10.02, 17:57
Original geschrieben von Sonny
Ich will tatsächlich ausräumen......danke für die Erklärung.

Warum würdest du keine backticks verwenden?
Ohne den Dingern wird doch nichts ausgeführt, oder?

ich verwende lieber $() statt ``

backticks sind old-style (backslash wird speziell behandelt wenn danach ein $, ` oder \ folgt).
den ganzen schmus gibts bei dem neueren und eindeutigeren $() nicht mehr. ausserdem haben manche terminals probleme mit backticks.

-j

Sonny
22.10.02, 10:36
Danke, wieder was gelernt.

rlub
22.10.02, 22:52
http://www.linuxforen.de/forums/showthread.php?s=&threadid=31311

Ralf