Info-Programm für Druckserver und Drucker

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
guennid

Info-Programm für Druckserver und Drucker

Beitrag von guennid » 28.02.2014 07:57:21

Ich suche ein Programm, dass mir bei Bedarf (also nicht automatisch, sondern nur dann, wenn ich es nutzen will) anzeigt, ob eine bestimmte Maschine (hier Druckserver) online ist (falls negativ, wäre optionales Aktivieren per wol auch nicht schlecht :wink: ) und welche der daran angeschlossenen Geräte, (also die Drucker) betriebsbereit sind. Ich benutze Openbox, keine DE, Textausgaben im Terminal würden mir genügen, aber grafisch ist auch recht. Gibt es sowas für wheezy?

Grüße, Günther
Zuletzt geändert von guennid am 28.02.2014 19:49:39, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Beiträge: 8345
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Info-Programm

Beitrag von smutbert » 28.02.2014 08:47:57

Hm, sieht man das nicht direkt in cups? (hier zeigt er einen Netzwerkdrucker nur an, wenn er auch verfügbar ist)
http://druckserver.domain:631 oder Debiansystem-config-printer

Oder für einen bestimmten Drucker auf einem bestimmten Server (bin mir nicht sicher, dass es so funktioniert, aber wie man sieht hat es bei mir für einen lokalen Drucker namens pdf geklappt):

Code: Alles auswählen

[~]$ lpstat -h localhost -p pdf
printer PDF is idle.  enabled since Don 20 Feb 2014 09:20:32 CET
Für den Host an sich könntest du auch einfach pingen

Code: Alles auswählen

ping -c1 druckserver.domain > /dev/null && echo "erreichbar"
oder diese Funktion hier übernehmen: http://www.linuxforen.de/forums/showpos ... ostcount=8

guennid

Re: Info-Programm

Beitrag von guennid » 28.02.2014 09:22:55

Bin in Eile, deswegen nur auf die Schnelle:
Cups-GUI unhandlich: Rödelt bei ausgeschalteter Maschine zu lange bis Meldung kommt.
localhost: hier sinnfrei

Melde mich wieder, wenn ich Zeit habe, den Rest systematisch zu prüfen.

Grüße, Günther

Benutzeravatar
smutbert
Beiträge: 8345
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Info-Programm

Beitrag von smutbert » 28.02.2014 09:40:03

Du sollst statt localhost natürlich den Namen deines Druckservers nehmen.

guennid

Re: Info-Programm

Beitrag von guennid » 28.02.2014 19:45:38

Mit system-config-printer oder lpstat kriege ich mehr oder weniger indirekt raus, ob der Server hochgefahren ist oder nicht.
Aber weder system-config-printer noch lpstat melden, ob ein Drucker Strom hat oder nicht. Kann man das überhaupt abfragen (z.B. wenn mehrere Drucker über usb laufen?).

Ich werde mir vielleicht selbst was basteln. Dazu würde mich interessieren:
1. gibt es eine Liste mit den exit-codes von lpstat?
2. Wie schreibe ich den exit-code von lpstat in eine Variable?

Wenn ich über ping gehe: Wie sieht's da mit den exit-codes aus: Könnte ich an denen überhaupt erkennen, ob dem ping geantwortet wurde oder nicht.

Wenn ich was mache mache, ich es mit Pascal. Ich kann mir nicht vorstellen, mit für mich verqueren bash-Syntax jemals warm zu werden.

Grüße, Günther

Benutzeravatar
smutbert
Beiträge: 8345
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Info-Programm für Druckserver und Drucker

Beitrag von smutbert » 28.02.2014 21:03:28

Also bei ping ist der exit code 0, wenn der Host geantwortet hat (sonst würde mein Beispiel ja nicht funktionieren), bei einem unbekannten Host ist der Exitcode 2 und bei einem bekannten Host, der aber nicht antwortet 1.

Nach dem Ausführen eines Befehls steht der Exitcode in der Variablen $?, die kannst du ausgeben den Wert einer neuen Variablen zuweisen, damit er nicht beim Befehl verloren geht oder was immer du willst:

Code: Alles auswählen

ping -c 1 host.domain
ExitCode=$?
Mit anderen Befehlen wie lpstat funktioniert's ganz gleich.
Bei installiertem Debianetherwake kannst du mit einem Befehl direkt einen nicht verfügbaren Host per WOL aufwecken (die MAC-Adresse siehst du in der Ausgabe von ifconfig):

Code: Alles auswählen

ping -c 1 host.domain || ether-wake MAC-Adresse-von-host.domain
oder wenn es dir so besser gefällt :wink:

Code: Alles auswählen

ping -c 1 host.domain
ExitCode=$?
if [ ${ExitCode} -eq 1 ]; then
    ether-wake MAC-Adresse-von-host.domain
fi

Es kommt mir komisch vor, dass du von lpstat überhaupt den Exitcode brauchst. Ein

Code: Alles auswählen

lpstat -h druckerserver.domain -p
gibt eine schöne Liste der Drucker aus, inklusive der Information, welcher Drucker online ist. Eine Liste welcher Exitcode was bedeutet kenne ich nicht.

guennid

Re: Info-Programm für Druckserver und Drucker

Beitrag von guennid » 28.02.2014 21:40:05

Danke für die ausführliche Info!

lpstat
gibt eine schöne Liste der Drucker aus, inklusive der Information, welcher Drucker online ist.
Hier tut das Programm das mit deinem Kommando nicht. Es listet die bekannten Drucker, sagt aber nichts darüber, ob ein Drucker offline ist. Und genau das ist der springende Punkt. Wenn alles online ist, brauche ich kein lpstat. Dann drucke ich. Interessant wird's für mich, wenn ich drucken will und ein Programm mir vor dem Gang in den Keller sagt, das selbiger nötig ist, weil der gewünschte Drucker nicht eingeschaltet ist :wink: Ob das möglich ist, weiß ich nicht.

Code: Alles auswählen

ExitCode=$?
Das wird mir weiter helfen. Ich sagte ja, wenn ich was bastele, mach ich's mit Pascal, nicht mit der shell, und dazu brauche ich den ecitcode - wenn man ihn brauchen kann.
ping -c 1 host.domain || ether-wake MAC-Adresse
sollte dann mit wakeonlan auch gehen, oder?

Grüße, Günther

Benutzeravatar
smutbert
Beiträge: 8345
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Info-Programm für Druckserver und Drucker

Beitrag von smutbert » 28.02.2014 22:04:51

'türlich - habe ich nur nicht gekannt (wakeonlan sieht irgendwie sogar besser aus).

Gibt lpstat bei dir gar keine Information zum Status aus? (also à la printer xyz is idle.) - man kann lpstat mit -v oder gar -t noch gesprächiger machen.

guennid

Re: Info-Programm für Druckserver und Drucker

Beitrag von guennid » 28.02.2014 22:11:05

Code: Alles auswählen

$ lpstat -h drucker -p
printer HP_deskjet_5100_farbig is idle.  enabled since Mi 26 Feb 2014 08:38:25 CET
printer HP_LaserJet_2200_s+w is idle.  enabled since Mi 26 Feb 2014 08:33:45 CET
Den Deskjet hatte ich zum Testen bewusst ausgeschaltet.

Mal schauen, was -v oder -t so bringt. :wink:

Grüße, Günther

Antworten