Netzwerkdrucker verschwinden

Hallo,

ich führe das Thema “Netzwerkdrucker fehlen manchmal” von der Mailingliste jetzt über Discourse weiter.

Hier erst einmal eine kurze Zusammenfassung, ich hoffe, dass ich nichts vergesse und logisch gliedere - mit bitte um Ergänzung.

I. Problem:
Jens und ich berichten von dem Problem, dass bei Linuxclients (16.04 bzw. 14.04) nach einer Weile auf einmal die Netzwerkdrucker verschwinden.

II. Vermutete Ursache:
CUPS-Versionen auf Server und Client spielen nicht saber zusammen.

III. Lösungsansätze:
1 Ein Versionsupdate am Server wird NICHT empfohlen! (Holger)

2 Netzwerkdrucker am Client händisch eintragen
2.1 händisch oder über lpadmin-Befehl
2.2 Druckwarteschlange am Server oder am Client

3 CUPS am Client stillegen, wenn man keine lokalen Drucker hat
@Steffen: Ist das ein eigenständiger Lösungsansatz, der also ohne weiteres Zutun zum Erfolg führen kann?

Gruß
Stefan

Hallo Stefan,
ich hatte das gleiche Problem.
“Gelöst” hab ich’s mit dem universellen Postsync-Skript für Linux. Den cups-browsed hab ich rausgeschmissen.
Das klappt ganz gut und in jedem Raum sind nur die Drucker sichtbar, auf die man auch drucken kann.

Hallo Mathias,

„Gelöst“ hab ich’s mit dem universellen Postsync-Skript für Linux.
Danke für den Hinweis.

Verstehe ich das richtig - damit trägt man die Drucker an den Clients ein?

Den cups-browsed hab ich rausgeschmissen.

Verstehe ich das richtig - die Druckerwarteschlange ist also auf dem Server?

Das klappt ganz gut und in jedem Raum sind nur die Drucker sichtbar, auf die man auch drucken kann.

Und wenn mehrere Drucker in einem Raum sind, funktioniert bestimmt auch das Anmeldescript linuxmuster-client-extras set-default-printer - oder?

Gruß
Stefan

Hallo,

für mich ist der Bereich Drucken mit CUPS noch nicht klar. Als Umsteiger von Windows und mit Bugs bei CUPS tue ich mich damit noch schwer. Ich versuche daher das Thema für mich zu strukturieren, um eine Lösung des Problems zu finden, die ich dann auch verstehe.
Ich habe dazu viele Fragen, die vielleicht schon selbst ein Missverständnis enthalten könnten, und bitte Euch daher um Aufklärung. Wer auch nur auf eine der Fragen antworten kann, möge das bitte tun, ich fasse dann schon alles wieder zusammen.

I. Problem:
Mehrere Admins berichten von dem Problem, dass bei Linuxclients (Ubuntu 16.04 bzw. 14.04) nach einer Weile die Netzwerkdrucker verschwinden.

ZUSATZ: Bei mir wird übrigens auch wenn gerade keine Druckprobleme auftreten bei JEDEM Druckauftrag der Fehler „cups-remote-pending“ angezeigt.

II. Vermutete Ursache:
CUPS-Versionen auf Server (Ubuntu 12.04, CUPS 1.5) und Client (CUPS 1.7 und höher) spielen nicht sauber zusammen.

III. Funktionsweise von CUPS für Netzwerkdrucker in LMN:
??? Habe ich das richtig verstanden? In der LMN läuft auf dem LMN-Server der CUPS-Serverdienst. Auf den Linuxclients läuft der Dienst „cups-browsed“, der die über den CUPS-Serverdienst verfügbaren Netzwerkdrucker auf dem Client einträgt in die Datei /etc/cups/printers.conf
In der Serverdatei /etc/linuxmuster/workstations sind die Druckerdaten (MAC, IP, Raum, Hostname) hinterlegt für die Verwaltung der Berechtigungen (kann über Scholkonsole-Hosts verwaltet werden). Verwaltet werden diese Berechtigungen über Schulkonsole-Drucker.
Zum Ansteuern der Drucker mit CUPS wird nur der Druckername oder die IP des Druckers verwendet, wie sie bei der Verwaltung des Druckers in CUPS eingetragen wurden - der Hostname in /etc/linuxmuster/workstations muss also nicht mit dem Druckernamen in CUPS übereinstimmen.
??? Die Druckerwarteschlange wird durch CUPS verwaltet und kann in CUPS auf dem Server oder in CUPS auf dem Client eingerichtet werden. Funktioniert die lokale Druckwarteschlange noch, wenn man „cups-browsed“ deaktiviert? Kann man noch lokale Drucker (z.B. über USB) verwenden, wenn man „cups-browsed“ deaktiviert?
??? Druckerwarteschlange am Client oder Server - Spielt das hier überhaupt eine Rolle bei diesem Problem, oder ist das hierbei ganz egal?

IV. Lösungsansätze:
1 Anpassung von /etc/cups/cups-browsed.conf auf dem Client (alte LMN-WIKI-Lösung)
??? Was muss denn da genau stehen, wenn der Server 10.16.1.1 hat? Die Angaben sind mir nicht klar. Vielleicht ist das ja schon die Ursache des ganzen Übels.
BrowsePoll 10.16.1.1:631/version=1.1
oder
# BrowsePoll 10.16.1.1:631/version=1.1
oder
BrowsePoll 10.16.1.1:631

Im LMN-Wiki steht dazu:

BrowsePoll 10.16.1.1:631/version=1.1 ← diese Zeile auskommentieren und für cups.example.com die ServerIP einsetzen

??? „auskommentieren“ hieße doch die Zeile mit # unwirksam zu machen - das ist doch wohl nicht gemeint - oder?

Bei ubuntuusers steht dazu:

Obwohl das eigentlich keine Rolle spielen sollte, häufen sich Berichte über Probleme zwischen CUPS-Servern mit der Version 1.5.x (Ubuntu 12.04) und Clients mit einer neueren Version von CUPS (1.6.x oder neuer). Abhilfe schafft eine Änderung in der Datei /etc/cups/cups-browsed.conf auf dem Client(!), wobei /version=1.1 entfernt werden muss

2 CUPS-Versionsanpassung
2.1 CUPS-Versionssupgrade am Server wird NICHT empfohlen!
2.2 CUPS-Versionssdowngrade am Client auf gleiche Version wie am Server
Keine Erfahrungen damit, nur wenige, sehr alte Berichte zu finden mit mehr oder weniger Erfolg.

3 Eintragen der Netzwerkdrucker am Client
??? Ist es nötig, cups-browsed am Client still zu legen oder wurde dies nur vorsichtshalber von einigen getan? Wie lauten die Befehle dazu?
??? Laut LMN-Wiki: Unverselles Postsync-Skript werden die Drucker in der Datei /etc/cups/printers.conf festgelegt. Das geht wohl auf versch. Weisen - aber welche sind das und welche Vorteile/Nachteile haben diese?
Händisch über grafische Oberfläche und Datei sichern (evtl. per Universellem Postsync-Skript auf versch Clients verteilen), mit lpadmin-Befehl weitere… ?
3.1 Eintragen der Netzwerkdrucker am Client im Image
Bei Änderungen von Druckernamen oder IP-Adressen muss ein neues Image erstellt werden.
3.2 Eintragen der Netzwerkdrucker am Client per Postsync
Änderungen von Druckernamen oder IP-Adressen können ohne Imageerstellung eingepflegt werden.
3.2.1 Postsync mit Unversellem Postsync-Skript
Hier kann man für alle Räume und Clients eigene Druckereintragungen festlegen durch Verteilung von zuvor händisch über die grafische Oberfläche an Clients erstellten Datei /etc/cups/printers.conf.
??? Der jeweilige Standarddrucker kann direkt über die grafische Oberfläche oder das Anmeldescript linuxmuster-client-extras set-default-printer automatisch gesetzt werden.
3.2.2 Einfacher Postsync
Sollen auf allen Clients die selben Drucker eingetragen werden, kann man das über das Ersetzen der Datei /etc/cups/printers.conf per Postsync. Der jeweilige Standarddrucker kann über das Anmeldescript linuxmuster-client-extras set-default-printer automatisch gesetzt werden.

V. Spätere Änderungen bei den Druckern
1.1 Änderungen der Zugriffsberechtigungen auf Netzwerkdrucker von den Räumen aus, werden über Schulkonsole-Drucker vorgenommen.
1.2 Raumänderungen oder Änderung der MAC-Adresse (wenn Drucker-Hardware ersetzt werden muss) werden nur durch Änderung der Serverdatei /etc/linuxmuster/workstations vorgenommen (kann über Scholkonsole-Hosts verwaltet werden).
1.3 Soll die Drucker-IP geändert werden, so muss dies in CUPS auf dem Server und der Serverdatei /etc/linuxmuster/workstations (kann über Scholkonsole-Hosts verwaltet werden) vorgenommen werden. Bei bei ausgeschaltetem „cups-Browsed“ muss dafür gesorgt werden, dass die Datei /etc/cups/printers.conf angepasst wird.
1.4 Änderung des Druckernamens muss in CUPS auf dem Server geschehen. Bei bei ausgeschaltetem „cups-Browsed“ muss dafür gesorgt werden, dass die Datei /etc/cups/printers.conf angepasst wird.

Gruß
Stefan

Hallo,

bei mir scheint es wieder zu funktionieren. Die Netzwerkdrucker sind wohl sei 2 Tagen nicht wieder verschwunden. Ich habe es öfters immer wieder kontrolliert an versch. Clients, und auch auf Nachfrage bei einigen KuK wurden keine Probleme berichtet.

Ich hatte folgendes bemerkt: Einige Druckernamen tauchten im Druckdialog auf, die ich nie im CUPS eingerichtet hatte, wie schon hier beschrieben: https://mail.lehrerpost.de/pipermail/linuxmuster-user/2017-January/018458.html
Als ich die Printserver von 3 Druckern als Ursache der zusätzlichen Drucker im Druckdialog ausfindig gemacht hatte, verglich ich deren Einstellungen mit anderen, unauffälligen Printservern. Dadurch konnte ich die Einstellung “ipp-Druck” finden und deaktivieren (auch “FTP-Druck” war zusätzlich aktiviert, aber wahrscheinlich nicht die Ursache des Problems). 9100-Druck lies ich aktiviert, da ich darüber die Drucker bei CUPS ansteuere.
Seit der Deaktivierung von ipp-Druck auf den Printservern, scheinen wie gesagt keine Netzwerkdrucker im Druckdialog verschwunden zu sein.

Gruß
Stefan

…und noch was (vor allem für Steffen!!!):

Die Einstellungen für cups-browsed im LMN-Wiki waren wohl nicht korrekt, wie ich im langen Beitrag hier schon nachgefragt habe:

IV. Lösungsansätze:
1 Anpassung von /etc/cups/cups-browsed.conf auf dem Client (alte LMN-WIKI-Lösung)

Holger hat das schon korrigiert:
http://www.linuxmuster.net/wiki/anwenderwiki:linuxclient:defaultcloop_14.04#cups_-_browsed

Bei mir steht da auch noch:

BrowsePoll 10.16.1.1:631/version=1.1

und nicht, wie es sein sollte:

BrowsePoll 10.16.1.1:631

Aber ich habe ja auch noch eine Fehlermeldung, obwohl das Drucken funktioniert:

ZUSATZ: Bei mir wird übrigens auch wenn gerade keine Druckprobleme
auftreten bei JEDEM Druckauftrag der Fehler „cups-remote-pending“
angezeigt.

Vielleicht bekomme ich die ja noch weg mit der richtigen EInstellung für BrowsePoll.

… und ein letztes für den Moment:

Das Problem mit Druckern, die sich im Netzwerk promoten, könnte man evtl. auch verhindern, indem man bei CUPS die Einstellung ‚Zeige freigegebene Drucker von anderen Systemen‘ deaktiviert unter Drucker - Verwaltung - Erweitert.
DANKE an die SUPPORT-HOTLINE !

Gruß
Stefan

Hallo Stefan,

BrowsePoll 10.16.1.1:631

habe ich auch schon “durch”. Ich glaube es gibt nichts, was Cups
Browse/Poll betrifft, was ich in den geschätzt >>> 50 Stunden, die ich
damit insgesamt verbracht habe, nicht geändert, eingefügt,
auskommentiert, … habe.

Geht bei mir um nichts auf der Welt, aber eben v.a. wegen der
"ImplicitClass" Sache, die ich einfach beim Browse/Poll nicht weg kriege.

Ich habe mich jetzt schon damit angefreundet, halt weiterhin die Drucker
auf den Client zu installieren (nachdem ich endlich Cups browsed und
Poll ruhiggestellt bekommen habe und nicht lokal installierte Drucker
gar nicht mehr erscheinen).

Ist eigentlich auch kein Aufwand. Hab die /etc/cups/ppd und
/etc/cups/printers.conf aus 12.04 ins Postsync für 16.04 gepackt.
Aber momentan steht der Wechsel auf Ubuntu 16.04 trotzdem wieder still,
weil ich nicht dazu komme, Leoclient 2 (Umstieg von 1) und Epoptes
einzurichten. Beides brauche ich aber dringend.

Viele Grüße
Steffen

P.S. Beinahe hätte ich wieder quotiert wie bei Mails üblich (in den Text
rein), aber dann käme das ab dem ersten Zitat nicht in Discourse an.
Also künftig dran denken, wenn man per E-Mail antwortet: TOFU :smiley:

Hallo Stefan,

entschuldige bitte, dass ich erst jetzt antworte…

"Gelöst" hab ich's mit dem universellen Postsync-Skript für Linux.
Danke für den Hinweis.

Verstehe ich das richtig - damit trägt man die Drucker an den Clients ein?

Genua und zwar nur die Drucker, die in dem Raum verfügbar sind.

Den cups-browsed hab ich rausgeschmissen.

Verstehe ich das richtig - die Druckerwarteschlange ist also auf dem Server?

Das ist immer so. Der CUPS, der die Druckaufträge auf die Drucker schickt, läuft auf dem Server.

Das klappt ganz gut und in jedem Raum sind nur die Drucker sichtbar, auf die man auch drucken kann.

Und wenn mehrere Drucker in einem Raum sind, funktioniert bestimmt auch das Anmeldescript
linuxmuster-client-extras set-default-printer - oder?

Das ist davon unabhängig…

Gruß,

Mathias

Hallo,

|"Gelöst" hab ich's mit dem universellen Postsync-Skript für Linux.
Danke für den Hinweis.|

Verstehe ich das richtig - damit trägt man die Drucker an den
Clients ein?

Genua und zwar nur die Drucker, die in dem Raum verfügbar sind.

|Den cups-browsed hab ich rausgeschmissen.|

[…]

|Das klappt ganz gut und in jedem Raum sind nur die Drucker sichtbar,
auf die man auch drucken kann.|

genau so hatte / habe ich es unter 12.04 und genau so werde ich es
wieder unter 16.04 machen.

Alles andere (der ganze Mist mit Cups-Browsed) funktioniert einfach
nicht wirklich, denn es macht was es will, z.B. ImplicitClasses mit
Drucken auf dem Drucker, der gerade als erster den Auftrag annimmt, ohne
dass man darauf Einfluss hätte.

Legt man die Drucker von Hand an, dann funktioniert das auch genau so,
wie man es vorgibt.

Viele Grüße
Steffen

Hallo,

postsync zum EIntragen der Drucker am Client sehe ich mittlerweile auch als langfristige Lösung. Dafür wäre es gut zu wissen, was man alles am Client deaktivieren bzw. deinstallieren muss, um cups-browsed am Client los zu werden.
Könnte da vielleicht jemand was ins Wiki schreiben?

Momentan habe ich noch cups-browsed auf den Clients mit
BrowsePoll 10.16.1.1:631/version=1.1
und auf dem Server-CUPS die Einstellung deaktiviert
Zeige freigegebene Drucker von anderen Systemen
unter Drucker - Verwaltung - Erweitert.
Und bei bei allen Printserverkarten der Drucker habe ich ipp ausgeschaltet, so dass sie sich im Netzwerk nicht promoten.
=> Nur noch selten Fehler, dass die Druckern nicht angezeigt werden, aber eben nicht ohne Fehler.

Ich werde jetzt erst einmal bei nächsten Image verteilen
BrowsePoll 10.16.1.1:631
versuchen. Und dann postsync.

Gruß
Stefan

Hallo Stefan,

Momentan habe ich noch cups-browsed auf den Clients mit
BrowsePoll 10.16.1.1:631/version=1.1
und auf dem Server-CUPS die Einstellung deaktiviert
Zeige freigegebene Drucker von anderen Systemen
unter Drucker - Verwaltung - Erweitert.
Und bei bei allen Printserverkarten der Drucker habe ich ipp ausgeschaltet,
so dass sie sich im Netzwerk nicht promoten.
=> Nur noch selten Fehler, dass die Druckern nicht angezeigt werden, aber
eben nicht ohne Fehler.

Ich werde jetzt erst einmal bei nächsten Image verteilen
BrowsePoll 10.16.1.1:631
versuchen. Und dann postsync.

wie ich schon schrieb liefert keine Einstellung stabile und
zufriedenstellende Ergebnisse. Direkt nach Clientstart ist noch alles ok,
irgendwann bilden sich dann die ImplicitClasses und es wird chaotisch -
eine Regel / ein Muster warum wie wo was ist nicht erkennbar.

Imho müsste es reichen, am Server-Cups in der /etc/cups/cupsd.conf alles
mit cups-browsed (= Drucker ins Netz „rufen“) UND am Client-Cups in der
/etc/cups/cupsd.conf alles mit BrowsePoll (nach freigegebenen Druckern im
Netz suchen) auszukomentieren.

Ich habe nach den unzähligen mit der automatischen Druckerverteilung
vergeudeten Stunden schließlich sowohl am Server als auch am Client alles
mit Cups-browsed UND BrowsePoll deaktiviert.

Was man nicht machen darf ist, die Freigabe der Drucker am Server zu
entfernen (Haken wegmachen). Dann kann man nur noch vom Server direkt
drucken, aber nicht mehr vom Client.

Viele Grüße
Steffen