PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seitenzahlenerfassung unter samba



Seiten : [1] 2

T997502
11.03.04, 07:30
Ich habe gerade ein Projekt laufen, bei dem die gesamte Druckeradministration auf Linux (Samba) umgestellt werden soll. In dem Netzwerk gibt es etwa 2000 User, und es soll für jeden user die gedruckten Seitenzahlen mitprotokolliert werden.
Meine Frage lautet nun, gibt es bei samba einen implementierten Dienst, der automatisch die Seitenzahlen erfasst?

Ich bin für jeden Hinweis dankbar

drcux
11.03.04, 07:33
Da Samba herzlich wenig davon weiß, was in einem Druckjob drinne ist, ist Samba der falsche Ansatz.
CUPS verarbeitet die Druckjobs, hier solltest du anfangen zu suchen...

Blade
11.03.04, 21:19
was ist, wenn die Drucker vom Server über LPRng angesteuert werden, alles wird dann 1:1 durchgeleitet. Die Seitenzählung kann dann nicht klappen.

Gruß Blade :confused:

T997502
12.03.04, 12:25
Das ist eine entscheidende Frage. Werden bei Samba die Druckdaten 1:1 durchgeleitet, oder gibt es die Möglichkeit einzugreifen und die Seitenzahlen herauszufiltern, möglicherweise mit Hilfe der Log-Dateien?
Gibt es eine Möglichkeit die Postscript-Daten auszulesen?

Danke:confused:

[WCM]Manx
12.03.04, 12:30
CUPS => page.log


kyocera 1 [05/Dec/2003:14:17:33 +0100] 1 1 - localhost
kyocera root 2 [15/Dec/2003:14:13:06 +0100] 1 1 - d600
kyocera root 3 [15/Dec/2003:14:19:12 +0100] 1 1 - d600
kyocera root 3 [15/Dec/2003:14:19:12 +0100] 1 1 - d600
kyocera root 3 [15/Dec/2003:14:19:20 +0100] 2 1 - d600
kyocera root 4 [15/Dec/2003:14:22:03 +0100] 1 1 - d600
kyocera root 4 [15/Dec/2003:14:22:03 +0100] 1 1 - d600
kyocera Administrator 5 [15/Dec/2003:15:57:43 +0100] 1 1 - d600
kyocera Administrator 6 [15/Dec/2003:15:58:50 +0100] 1 1 - d600
kyocera Administrator 7 [18/Dec/2003:00:27:42 +0100] 1 1 bill it on dagmar d600
kyocera 8 [12/Mar/2004:15:44:21 +0100] 1 1 - localhost
kyocera elvis 9 [12/Mar/2004:15:45:36 +0100] 1 1 bill it on dagmar 192.168.123.1 ### vom Windows Rechner 192.168.123.1 Benutzername "elvis" mit BILL Info
kyocera elvis 10 [12/Mar/2004:15:53:27 +0100] 1 1 - 192.168.123.1

Manx

[WCM]Manx
12.03.04, 12:50
... und über das log läßt Du dann das drüber:
http://www.nongnu.org/printanalyze/

Grüße

Manx

T997502
17.03.04, 10:04
Bei mir loggt CUPS leider nur die Druckaufträge mit, die lokal ausgeführt werden, Aufträge die über Samba ankommen, werden nicht mitgeloggt. Welche Einstellung muss dafür getroffen werden?

[WCM]Manx
17.03.04, 10:09
Samba druckt auch über CUPS?
printing = cups
printcap name = cups
Wird anonym gedruckt?

Grüße

Manx

T997502
17.03.04, 14:05
ein Auschnitt aus der smb.conf:

[global]
workgroup = 5BHELI
encrypt passwords = Yes
map to guest = Bad User
time server = no
unix extensions = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
printcap name = CUPS
os level = 2
printing = CUPS
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
wins support = no


eine Druckersektion:
[W021300]
comment = HPLaser Jet 1300 im W02
path = /var/tmp
valid users = reinhold
read only = No
create mask = 0600
printable = Yes
printer name = W021300

Hier wurde testweise ein user "reinhold" angelegt mit dem gedruckt wird. Es werden in der page_log jedoch keine Eintragungen vorgenommen.

Welche Einstellungen müssen in der cupsd.conf vorgenommen werden, damit die Protokollierung funktioniert?

stefaan
17.03.04, 15:19
Servus!

Wenn cups "RAW" druckt, wird der Druckauftrag einfach vom Client übernommen, der die Seite(n) schon druckfertig aufgearbeitet hat.
Die Zählerei geht nur, wenn Cups den Druckauftrag abarbeitet - ich glaube mit Postscript.

Grüße, Stefan

T997502
17.03.04, 15:26
Wie kann ich CUPS dazu bringen, den Druckauftrag abzuarbeiten, bzw. was meinst du mit "ich glaube mit postscript"?

[WCM]Manx
17.03.04, 15:34
... meine Clients verwenden den CUPS Postcript Drucker-Treiber, der automatisch über den "Add Printer Wizard" am Client installiert wird.

Grüße

Manx

T997502
18.03.04, 08:30
Ich glaube das Problem mit der log-Datei liegt woanders. Wenn ich mit
http://localhost:631/jobs die abgearbeiteten Jobs betrachte, stehen alle Druckaufträge mit den entsprechenden Usernamen drinnen. Das heißt das CUPS die Aufräge erfasst, aber die Protokollierung funktioniert anscheinend nicht.

Kann mir da jemand weiterhelfen?
thx

[WCM]Manx
18.03.04, 08:57
Hi!

Etwas mehr Infos bitte ;)

Welcher Druckertreiber auf den Clients?
Du betrachtest das richtige page_log?
Logrotate macht Dir auch keinen Strich durch die Rechnung?

Grüße

Manx

T997502
18.03.04, 12:03
So hier sind die gewünschten Infos:

Auf den Clients ist größtenteils Win2k installiert, und es werden dabei die entsprechenden Windowstreiber verwendet.
(Linux-Clients werden später integriert)

Weiters betrachte ich die Datei /var/log/cups/page_log (Diese Datei ist auch in dem perl-script printanalyzer angegeben.)

Was logrotate betrifft, muss ich zugeben, dass ich nicht weiß was dies bedeutet.

danke für deine hilfe

[WCM]Manx
18.03.04, 22:44
Hi!

Verwende mal den CUPS Windows Druckertreiber.
Bei mir stellt Samba 3 diesen Treiber den Clients automatisch zur Verfügung (point and print).
Sprich:
Drucker unter CUPS mit dem passenden PPD-File einrichten. Mit cupsaddsmb den Druckertreiber ins richtige Verzeichnis kopieren (Samba Doku lesen, da gab's mal Probleme, dass nicht alle Dateien kopiert werden konnten).
Vom Client aus den Drucker hinzufügen (es sollte keine Treiberinstallation nötig sein).

Auf meiner Windows XP Drucker-Testseite steht:
...
Anschlussname: Samba Printer Port
...
Treibername: cupsdrvr.dll
Datendatei: meinPostscriptDrucker.ppd
Konfig.-Datei: cupsui.dll
Hilfedatei: cups.hlp
Treiberversion: 4.00
Umgebung: Windows NT x86
Standarddatentyp: RAW

Grüße

Manx

PS: Du kannst Dir auch zusätzlich pykota anschauen. Habs heute getestet, bin begeistert. ;)
http://www.librelogiciel.com/software/PyKota/action_Presentation

T997502
24.03.04, 13:24
Es ist so:
Die Drucker hängen nicht direkt am Samba-Server sondern sind überall im Netzwerk verteilt, und sind erstens keine Netzwerkdrucker und zweitens keine Postscript-Drucker. Größtenteils stehen HP Laser Jet 1300 zur Verfügung, die an Windows 2000 Clients hängen. Nun soll man nicht mehr direkt über diese Clients drucken können, sondern nur mehr über den Samba-Server. Jeder Benutzer soll am Server angelegt werden und über ein Guthaben verfügen, mit dem er drucken kann.
Bei jeder gedruckten Seite soll ein gewisser Betrag von diesem Guthaben abgezogen werden.

Die Drucker sind jetzt am Server installiert (mit CUPS) und werden mit Samba freigeben.

was ist das ppd-file zum Einrichten, bzw. wie funktioniert es mit cupsaddsmb die treiber freizugeben, das funktioniert bei mir nicht.

danke:confused:

[WCM]Manx
24.03.04, 13:42
... hm, das ist etwas kompliziert und somit werde ich noch neugieriger ;)

Wieviele Drucker, wo überall verteilt, Schule?

Weiters brauchst Du für Dein Vorhaben sowieso eine Druck-Quota-Software.
z.B pykota, printbill, printquota oder was kommerzielles :(

Grüße

Manx

T997502
24.03.04, 13:51
ja genau, das ganze ist eine diplomarbeit in einer htl, und das ganze sollte in 8 Wochen fertig sein,...

ja eine solche Software wäre eventuell sinnvoll, woher bekomme ich eine solche gratis her, praktisch wäre es wenn das ganze in C geschrieben wäre, damit ich es leicht editieren kann.

[WCM]Manx
24.03.04, 14:21
Hi!

o.k (welche HTL ;) ? )

Versuche mal folgendes:
Samba 3 verwenden!
Samba Howto Collection: Kapitel 19: "Printing from CUPS to Windows Attached Printers"

Du solltest die Drucker (HP Laserjet 1300) am Samba Server unter CUPS einrichten: Backend smb:// => Wie in der Samba Doku.
Für das Accounting müssen die Clients Postscript Drucken!!
Der Cups Server bekommt das passende PPD File von www.linuxprinting.org.
Denn CUPS verwendet auch für nicht Postscript Drucker PPD-Dateien.

Am Client den CUPS Windows Postscript-Treiber verwenden (am besten über point'n print zur Verfügung stellen).

Warum das ganze:

Die Seitenzahlen können nur aus den Postscriptdateien ausgelesen werden (außer man hätte Drucker, die z.B SNMP sprechen, nur wer hat das schon)
Die Clients schicken den Druckjob als Postscriptfile an CUPS, CUPS arbeitet den job ab und schickt diesen an den Drucker weiter (smb:// ).

Printing Quotas für CUPS:
pykota: http://www.librelogiciel.com/software/PyKota/action_Presentation
ziemlich genial, braucht aber entweder PostgreSQL oder LDAP

Grüße

Manx

[edit] die HP Laserjets 1300 könne ja eh Postscript. Schau mal auf den Treiber CDs nach PPD-Files.
Druckersprachen: HP PCL5e, PCL6, PostScript Level 2 Emulation
http://h41100.www4.hp.com/at/ger/commercial/laserjet/mono_entry.html

T997502
27.03.04, 09:56
Ja ich habe natürlich alle Drucker am Server mit den ppd-Dateien installiert. (Ist meiner Meinung auch gar nicht anders möglich)

Nur wie kann ich jetzt automatisch den Postscript Drucker für Windows zur Verfügung stellen, bei mir funktioniert cupsaddsmb nicht (ev. falsche engabe)

BSP:
Ich habe einen CanonBJC3000 an einem Windows 2000 PC Laufen, dieser ist unter Windows freigegeben.

Dieser Drucker ist auf dem CUPS-Server mit der entsprechenden ppd- Datei installiert, und wird über Samba freigegeben.

Wie muss nun der komplette cupsaddsmb Befehl lauten, um den Treiber für andere windows-clients freizugeben, habe bereits howto's und man cupsaddsmb durchgelesen, aber das Problem noch nicht gelöst.

Danke

[WCM]Manx
27.03.04, 12:46
Hi!

CUPS Windows Druckertreiber runtergeladen?
http://www.cups.org/windows.php
wget -c ftp://ftp.easysw.com/pub/cups/windows/cups-samba-5.0rc3.tar.gz
mkdir cups-samba
mv cups-samba-5.0rc3.tar.gz cups-samba
cd cups-samba
tar xzvf cups-samba-5.0rc3.tar.gz

dann:
http://at.samba.org/samba/docs/man/CUPS-printing.html#id2944204

Grüße

Manx

T997502
07.04.04, 10:04
Ich habe mich nun in das Kapitel 19 der samba doku eingelesen, und versucht laut den Anweisungen dort mit cupsaddsmb die Treiber zur Verfügung zu stellen.

Leider gibt es dabei Probleme.

Unter anderem fehlen die Dateien ADOBEPS5.DLL, ADOBEPSU.DLL, ADOBEPSU.HLP. Diese Dateien sollten im Ordner /usr/share/cups/drivers vorhanden sein.
Sollten diese Dateien nicht durch die installation des Shell-scripts erstellt werden?

Ich brauche dringend Hilfe, schön langsam bin ich am verzweifeln

T997502
07.04.04, 11:21
Das vorher beschriebene Problem habe ich nun gelöst, ich kann nun im windows direkt auf die Drucker zugreifen ohne einen Treiber installieren zu müssen.

Ich kann auf die Drucker zugreifen, die Aufträge in den Warteschlangen sehen, wenn ich aber nun etwas auf den Drucker schicken will, kommt immer eine Windows -Fehlermeldung.

Windows kann wegen eines Problems mit der Druckereinrichtung nicht drucken.
Testen Sie folgende Optionen:
*Drucken Sie eine Testseite aus Windows (funktioniert nicht)
*Überprüfen Sie ob der Drucker eingeschaltet ist (natürlich ist er das)
*Installieren Sie den Drucker neu (kein Effekt)

Wo kann das Problem liegen, lokal vom Server ist drucken ja möglich.
thx

[WCM]Manx
07.04.04, 15:40
Hi!

Mögliche Fehlerquellen:
Samba => Rechte-Problem
smb.conf posten
Cups => Rechte-Problem

Beide Logs durchschauen: (eventuell Loglevel erhöhen)
/var/log/cups
/var/log/samba

Grüße

Manx

T997502
09.04.04, 10:45
Leider tauchen immer wieder neue Probleme auf.
Ich hätte eine grundsätzliche Frage an dich:

Funktioniert es bei dir die Druckertreiber automatisch zur Verfügung zu stellen, als berechtigter Benutzer zu drucken, und danach steht ein Eintrag des entsprechenden jobs in der page_log?
Wenn das bei dir funktioniert kann ich ja sagen, das es grundsätzlich funktionieren würde.

Ich habe des ganze auf mehreren System probiert (SuSe 8.2 +Samba 2.2.8a, SuSe 9.0+ Samba 2.2.8a, SuSe 9.0 + Samba 3.0), überall gibt es Probleme.
Einmal kann man nicht berechigt drucken, auf dem anderen System werden keine Einträge in die page_log geschrieben, ...

Eine weitere Frage ist nun, welches Programm wird gestartet, wenn ein Drukauftrag einlangt. Ich bräuchte dafür aber nicht die kompilierte Version, sondern den Quelltext, um bei jedem Druckauftrag mein eigenes Programm aufrufen zu können, das entsprechend den Seitenzahlen ein gewisses Betrag vom Konto des Benutzers abzieht.

mamue
09.04.04, 12:08
Leider tauchen immer wieder neue Probleme auf.
Ich hätte eine grundsätzliche Frage an dich:

Funktioniert es bei dir die Druckertreiber automatisch zur Verfügung zu stellen, als berechtigter Benutzer zu drucken, und danach steht ein Eintrag des entsprechenden jobs in der page_log?

Anstelle [WCM]Manx antworte ich mal. Das geht. Derzeit verbinde ich die Drucker über das logon-script beim Anmelden, allerdings sind alle user power-user (Hauptbenutzer) auf den w2k-PC. Das geht auch unter NT4 und XP. Die gedruckten Seiten werden selbstredend im logfile eingetragen.
Es dauert oftmals etwas, bis cupsaddsmb läuft, ich rate dringend dazu den entsprechenden Abschnitt der samba-howto collection einige male zu lesen. Sehr gut beschrieben auch in "samba-3 by Example" von John Terpstra.
Bei mir läuft das mit samba 3 (3.0.2a) und SuSE9.0. Es geht aber auch mit SuSE8.2 und samba2.2.x.
Die generelle Vorgehensweise hat [WCM]Manx ja schon deutlich gemacht, dem ist eigentlich nichts hinzuzufügen.

Viel Erfolg,
mamue

[WCM]Manx
09.04.04, 13:51
Hi!

Wie mamue schon sagte, das sollte gehen.
Bei Dir ist ja der Unterschied, dass der/die Drucker nicht am Samba/CUPS Server direkt angeschlossen sind, sondern irgendwo an einem Windows-Client hängen (am CUPS über smb://).
Da kann ich Dir nicht 100%ige Sicherheit geben, da selber noch nicht getestet.

Somit gibt es eine Fehlerquelle mehr (den Windows-Client mit Drucker)

Mach noch mal eine kurze Zusammenfassung:

Ist es eine Domain oder Arbeitsgruppe?
Wer hält die Benutzerdaten? (der Samba, ein Windows PDC?)
Verwende unbedingt den CUPS-Windows Druckertreiber, keinen Adobe-PS ( grad wegen dem page-log)!
http://at.samba.org/samba/docs/man/CUPS-printing.html#id2945588
Samba 3.02a und ein aktuelles CUPS wären optimal!

Schau dir pykota an, das macht genau was Du möchtest!
http://www.librelogiciel.com/software/PyKota/action_Presentation

Grüße

Manx

T997502
12.04.04, 20:23
Es gibt eine Domain, die Benutzerdaten hält der Samba Server bereit.

Hast du das pykota schon getestet? Es interresiert mich schon, aber ich habe leider nicht mehr die Zeit es wirklich zu testen. Hast die entsprechende rpm-Datei? Das würde die Sache vereinfachen.

Zurück zur letzten Frage:
Weiß jemand welches Programm gestartet wird, wenn ein Druckauftrag einlangt, bzw. welche Datei den Eintrag in die page_log vornimmt, bzw. wo ich den enstprechenden Quelltext bekomme?

mamue
13.04.04, 08:55
Zurück zur letzten Frage:
Weiß jemand welches Programm gestartet wird, wenn ein Druckauftrag einlangt, bzw. welche Datei den Eintrag in die page_log vornimmt, bzw. wo ich den enstprechenden Quelltext bekomme?

Samba nimmt die Druckaufträge entgegen und gibt sie an cups (cupsd) weiter. Der wird in Abhängigkeit der cupsd.conf (raw/gefiltert) Ghostscript starten (gs). Die Einträge in der page_log nimmt selbstredend cupsd vor.
Die Quelltexte gibt es bei samba.org und cups.org. Wo es ghostscript gibt, ist mir leider entfallen.

mamue