Re: Frage an die Script Profis
Hallo, da ich mich zuvor noch nicht zu Wort gemeldet habe: Hallo an alle! Am 26.10.2016 um 21:28 schrieb Bernhard Hering: Hallo, man könnte da fix was aus Python regex und String.splits basteln, das dauert keine Minute, So was wie z.B. das Skript im Anhang. Aufruf: python ldap_parse.py Ist für python3 gedacht aber sollte bei Austausch des print-Aufrufs auch mit python2 spielen. Ist vllt ein bisschen "overkill" mit den regex sollte seinen Zweck aber erfüllen. Viele Grüße Kevin On 26.10.2016 21:04, Thomas Müller wrote: Hallo zusammen, stehe wieder mal vor einem Rätsel was das Parsen von Files betrifft. Es geht um die Ermittlung von primären Mailadressen und Aliases aus einem AD und Schreiben in eine Datei. Die LDAP Abfrage funktioniert und durch diverse grep Sachen erhalte ich beispielhaft folgenden Inhalt in einer Datei: --%-- smtp:jemand.ande...@domain.de smtp:andere.per...@domain.de mail:i...@domain.de smtp:nochjemand.ande...@domain.de smtp:nocheinandere.per...@domain.de smtp:wernoch...@domain.de mail:d...@domain.de --%-- Hier ist gegeben, dass die Aliases (smtp) zur primären Adresse (mail) gehören. Nur dass eben erst die Aliases kommen, dann die primäre Mailadresse (quasi ein Trenner) und so weiter. Rauskommen soll so etwas: jemand.anderes:i...@domain.de andere.person:i...@domain.de nochjemand.anderes:d...@domain.de nocheineandere.person:d...@domain.de wernoch.da:d...@domain.de Wie löse ich das am Besten? Am Liebsten wäre mir eine Lösung per bash oder python, perl ist nicht so meins... Danke fürs Nachdenken und Gruß -- Mit freundlichen Grüßen Thomas Müller import re import sys aliases = [] output = [] mail_address_regex = r"(?P(?P[a-zA-Z0-9_.+-]+)@(?P[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+))" smtp_line_regex = re.compile(r"^smtp:{}$".format(mail_address_regex)) mail_line_regex = re.compile(r"^mail:{}$".format(mail_address_regex)) with open(sys.argv[1], "r") as file_obj: for line in file_obj.readlines(): smtp = re.match(smtp_line_regex, line) mail = re.match(mail_line_regex, line) if smtp: aliases.append(smtp.group("name")) elif mail: output.extend(["{}:{}".format(alias, mail.group("address")) for alias in aliases]) aliases = [] else: raise ValueError("Invalid line: \"{}\"".format(line)) print("\n".join(output))
Re: Frage an die Script Profis
On Wed, 26 Oct 2016 21:28:32 +0200 Bernhard Hering wrote: > aber sorry, ich kann da kein system erkennen. Erst paar Mal Zeilen smtp:, dann eine Zeile mail:, der alle vorhergehenden smtp-Zeilen zugeordnet sind.
Re: Frage an die Script Profis
Hoi Thomas, was sagst Du zu awk? cat LDAP-Anfrage | awk '/smtp:/ { print }' | cut -d ":" -f 2 Gruß Martin Am 26.10.2016 um 21:04 schrieb Thomas Müller: > Hallo zusammen, > > stehe wieder mal vor einem Rätsel was das Parsen von Files betrifft. > Es geht um die Ermittlung von primären Mailadressen und Aliases aus > einem AD und Schreiben in eine Datei. > > Die LDAP Abfrage funktioniert und durch diverse grep Sachen erhalte ich > beispielhaft folgenden Inhalt in einer Datei: > > --%-- > smtp:jemand.ande...@domain.de > smtp:andere.per...@domain.de > mail:i...@domain.de > smtp:nochjemand.ande...@domain.de > smtp:nocheinandere.per...@domain.de > smtp:wernoch...@domain.de > mail:d...@domain.de > > --%-- > > Hier ist gegeben, dass die Aliases (smtp) zur primären Adresse (mail) > gehören. Nur dass eben erst die Aliases kommen, dann die primäre > Mailadresse (quasi ein Trenner) und so weiter. > > Rauskommen soll so etwas: > > jemand.anderes:i...@domain.de > andere.person:i...@domain.de > nochjemand.anderes:d...@domain.de > nocheineandere.person:d...@domain.de > wernoch.da:d...@domain.de > > Wie löse ich das am Besten? > Am Liebsten wäre mir eine Lösung per bash oder python, perl ist nicht > so meins... > > Danke fürs Nachdenken und Gruß > > -- > Mit freundlichen Grüßen > Thomas Müller > signature.asc Description: OpenPGP digital signature
Re: Frage an die Script Profis
Hallo, man könnte da fix was aus Python regex und String.splits basteln, das dauert keine Minute, aber sorry, ich kann da kein system erkennen. wie wird aus: "smtp:jemand.ande...@domain.de" das: "jemand.anderes:i...@domain.de" aber wiederum aus "smtp:nochjemand.ande...@domain.de " das hier: "nochjemand.anderes:d...@domain.de" aus welchen infos nimmst du das :ich und :du vor dem @-zeichen? Grüße, Bernhard On 26.10.2016 21:04, Thomas Müller wrote: Hallo zusammen, stehe wieder mal vor einem Rätsel was das Parsen von Files betrifft. Es geht um die Ermittlung von primären Mailadressen und Aliases aus einem AD und Schreiben in eine Datei. Die LDAP Abfrage funktioniert und durch diverse grep Sachen erhalte ich beispielhaft folgenden Inhalt in einer Datei: --%-- smtp:jemand.ande...@domain.de smtp:andere.per...@domain.de mail:i...@domain.de smtp:nochjemand.ande...@domain.de smtp:nocheinandere.per...@domain.de smtp:wernoch...@domain.de mail:d...@domain.de --%-- Hier ist gegeben, dass die Aliases (smtp) zur primären Adresse (mail) gehören. Nur dass eben erst die Aliases kommen, dann die primäre Mailadresse (quasi ein Trenner) und so weiter. Rauskommen soll so etwas: jemand.anderes:i...@domain.de andere.person:i...@domain.de nochjemand.anderes:d...@domain.de nocheineandere.person:d...@domain.de wernoch.da:d...@domain.de Wie löse ich das am Besten? Am Liebsten wäre mir eine Lösung per bash oder python, perl ist nicht so meins... Danke fürs Nachdenken und Gruß -- Mit freundlichen Grüßen Thomas Müller
Frage an die Script Profis
Hallo zusammen, stehe wieder mal vor einem Rätsel was das Parsen von Files betrifft. Es geht um die Ermittlung von primären Mailadressen und Aliases aus einem AD und Schreiben in eine Datei. Die LDAP Abfrage funktioniert und durch diverse grep Sachen erhalte ich beispielhaft folgenden Inhalt in einer Datei: --%-- smtp:jemand.ande...@domain.de smtp:andere.per...@domain.de mail:i...@domain.de smtp:nochjemand.ande...@domain.de smtp:nocheinandere.per...@domain.de smtp:wernoch...@domain.de mail:d...@domain.de --%-- Hier ist gegeben, dass die Aliases (smtp) zur primären Adresse (mail) gehören. Nur dass eben erst die Aliases kommen, dann die primäre Mailadresse (quasi ein Trenner) und so weiter. Rauskommen soll so etwas: jemand.anderes:i...@domain.de andere.person:i...@domain.de nochjemand.anderes:d...@domain.de nocheineandere.person:d...@domain.de wernoch.da:d...@domain.de Wie löse ich das am Besten? Am Liebsten wäre mir eine Lösung per bash oder python, perl ist nicht so meins... Danke fürs Nachdenken und Gruß -- Mit freundlichen Grüßen Thomas Müller smime.p7s Description: S/MIME cryptographic signature
Re: Tonerstand per SNMP ermitteln
Zitat von Hilmar Preuße : Du hast geschrieben "denn in der Webschnittstelle kann ich einen Hinweis per E-Mail oder SNMP-Trap schicken lassen". Wird hier ein Schwellwert eingestellt, wann der Trap kommt oder kann man den Trap nur aktivieren und der Drucker entscheidet selber, welche Metrik er als Maß heran zieht? Ach so! Nein, ich kann leider nichts entscheiden... Ich kann folgendes auswählen: Drucker offen Offline Kein Papier Papierstau Wenig Papier Toner leer Wenig Toner Dazu kann ich die IP-Adresse, die Trap Community und ob es um eine Authentifizierungstrap und/oder Druckertraps handelt (was das bedeutet, ist mir aber unklar...). Grüße Luca Bertoncello (lucab...@lucabert.de)
Re: Tonerstand per SNMP ermitteln
Am 26.10.2016 um 12:26 schrieb Luca Bertoncello: Moin, ich verstehe nicht was du meinst mit "kann ich beim SNMP-Agenten eingeben, bei wie viel % er trappen soll"... Kannst du es mir erklären? Du hast geschrieben "denn in der Webschnittstelle kann ich einen Hinweis per E-Mail oder SNMP-Trap schicken lassen". Wird hier ein Schwellwert eingestellt, wann der Trap kommt oder kann man den Trap nur aktivieren und der Drucker entscheidet selber, welche Metrik er als Maß heran zieht? H. -- http://www.hilmar-preusse.de.vu/ #206401 http://counter.li.org
Re: Tonerstand per SNMP ermitteln
Zitat von Hilmar Preuße : Die 6 ist die "Tonerauffangeinheit HP CE254A", die anderen Zahlen sind wahrscheinlich einfach in %. Mgl. weise werden die %-Werte nicht an den SNMP-Agenten übergeben, sondern nur ein "voll" oder "nicht voll". Oder kannst Du beim SNMP-Agenten eingeben, bei wieviel % er trappen soll? Hallo Hilmar, ich verstehe nicht was du meinst mit "kann ich beim SNMP-Agenten eingeben, bei wie viel % er trappen soll"... Kannst du es mir erklären? Danke Luca Bertoncello (lucab...@lucabert.de)
Re: Tonerstand per SNMP ermitteln
Am 26.10.2016 um 11:11 schrieb Luca Bertoncello: Zitat von Hilmar Preuße : Moin, -3 trifft für Deinen "Toner Container" und Deine "Waste Toner Box" dann zu. Wenn Du es genauer wissen willst, wirst Du wohl bei Kyocera fragen müssen, ob man den SNMP-Agenten verbessern könne. Mist, also ich bin nur in der Lage zu wissen, dass Toner gibt, aber nicht wie viel? Das klingt aber schon komisch, denn in der Webschnittstelle kann ich einen Hinweis per E-Mail oder SNMP-Trap schicken lassen, wenn wenig Toner gibt oder wenn der Toner ganz alle ist.. Ich weiß auch nicht, was ich an der Stelle erwarten würde. Die MIB ist hinreichend ungenau darin, welche Maßeinheit zu erwarten ist. Der HP-Printer hier im Office SNMPv2-SMI::mib-2.43.11.1.1.9.1.1 = INTEGER: 9 SNMPv2-SMI::mib-2.43.11.1.1.9.1.2 = INTEGER: 65 SNMPv2-SMI::mib-2.43.11.1.1.9.1.3 = INTEGER: 56 SNMPv2-SMI::mib-2.43.11.1.1.9.1.4 = INTEGER: 93 SNMPv2-SMI::mib-2.43.11.1.1.9.1.5 = INTEGER: 75 SNMPv2-SMI::mib-2.43.11.1.1.9.1.6 = INTEGER: -3 SNMPv2-SMI::mib-2.43.11.1.1.9.1.7 = INTEGER: 95 SNMPv2-SMI::mib-2.43.11.1.1.9.1.8 = INTEGER: 91 Die 6 ist die "Tonerauffangeinheit HP CE254A", die anderen Zahlen sind wahrscheinlich einfach in %. Mgl. weise werden die %-Werte nicht an den SNMP-Agenten übergeben, sondern nur ein "voll" oder "nicht voll". Oder kannst Du beim SNMP-Agenten eingeben, bei wieviel % er trappen soll? H. -- http://www.hilmar-preusse.de.vu/ #206401 http://counter.li.org
Re: Tonerstand per SNMP ermitteln
Zitat von Hilmar Preuße : -3 trifft für Deinen "Toner Container" und Deine "Waste Toner Box" dann zu. Wenn Du es genauer wissen willst, wirst Du wohl bei Kyocera fragen müssen, ob man den SNMP-Agenten verbessern könne. 'ne Frage noch: kann es sein, dass ein -3 zurückgegeben wird, weil der Toner kein originaler Toner von Kyocera ist? Danke Luca Bertoncello (lucab...@lucabert.de)
Re: Tonerstand per SNMP ermitteln
Zitat von Hilmar Preuße : Hallo Hilmar, -3 trifft für Deinen "Toner Container" und Deine "Waste Toner Box" dann zu. Wenn Du es genauer wissen willst, wirst Du wohl bei Kyocera fragen müssen, ob man den SNMP-Agenten verbessern könne. Mist, also ich bin nur in der Lage zu wissen, dass Toner gibt, aber nicht wie viel? Das klingt aber schon komisch, denn in der Webschnittstelle kann ich einen Hinweis per E-Mail oder SNMP-Trap schicken lassen, wenn wenig Toner gibt oder wenn der Toner ganz alle ist.. Grüße Luca Bertoncello (lucab...@lucabert.de)
Re: Tonerstand per SNMP ermitteln
Am 25.10.2016 um 19:10 schrieb Luca Bertoncello: Moin, Nun will ich den Tonerstand lesen, und das scheitert... Theoretisch, sollte ich den Namen des Toner mit .1.3.6.1.2.1.43.11.1.1.6.1.1 bekommen (und tatsächlich ist es so: "Toner Container"), das Maximum mit .1.3.6.1.2.1.43.11.1.1.8.1.1 (das gibt 7200) und der aktuelle Stand mit .1.3.6.1.2.1.43.11.1.1.9.1.1. Diese gibt mir aber immer -3... Wenn ich die Seite mit dem Stand des Druckers drucken lassen, sehe ich aber ~10% noch Resttoner... Hat jemand eine Ahnung, wie ich die Daten interpretieren kann? Steht in der MIB: Name: prtMarkerSuppliesLevel Type: OBJECT-TYPE OID:1.3.6.1.2.1.43.11.1.1.9 Description: The current level if this supply is a container; the remaining space if this supply is a receptacle. If this supply container/receptacle can reliably sense this value, the value is reported by the printer and is read-only; otherwise, the value may be written (by a Remote Control Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown. A value of (-3) means that the printer knows that there is some supply/remaining space, respectively. -3 trifft für Deinen "Toner Container" und Deine "Waste Toner Box" dann zu. Wenn Du es genauer wissen willst, wirst Du wohl bei Kyocera fragen müssen, ob man den SNMP-Agenten verbessern könne. Hilmar -- http://www.hilmar-preusse.de.vu/ #206401 http://counter.li.org
Weitere Versuche mit Kyocera FS1030D und SNMP
Hallo Leute! Also, ich habe eine Unmenge von Seiten gefunden, wo gesagt wird, dass folgende Anfragen mir den Tonerstand des Druckers geben sollen: 1.3.6.1.2.1.43.11.1.1.6.1.1 = Name des Toners 1.3.6.1.2.1.43.11.1.1.8.1.1 = Max 1.3.6.1.2.1.43.11.1.1.9.1.1 = Aktuelles Wert Ich habe auch ein 1.3.6.1.2.1.43.11.1.1.7.1.1 gefunden, allerdings nicht die Bedeutung... Gut, also: $ snmpget -v1 -c public fs1030d -Ov 1.3.6.1.2.1.43.11.1.1.6.1.1 STRING: "Toner Container" $ snmpget -v1 -c public fs1030d -Ov 1.3.6.1.2.1.43.11.1.1.8.1.1 INTEGER: 7200 $ snmpget -v1 -c public fs1030d -Ov 1.3.6.1.2.1.43.11.1.1.9.1.1 INTEGER: -3 $ snmpget -v1 -c public fs1030d -Ov 1.3.6.1.2.1.43.11.1.1.7.1.1 INTEGER: 7 Alles schön, dass ich "Toner Container" sehen kann, und dass das Maximum 7200 ist, aber warum soll der Zustand -3 sein? Der Drucker druckt immer noch, also es MUSS Toner noch vorhanden sein... Wenn ich die Statusseite drucke, sehe ich dass der Toner längst nicht alle ist... Leider habe ich kein Wert, sondern nur ein Graph. Wenn ich aber den Graph messe, soll der Tonerstand zwischen 4% und 5% sein... Hat jemand eine Idee, wie ich den Stand lesen kann, damit ich alles in Nagios überwache? Leider die Webschnittstelle des Druckers gibt mir keine Information über den Tonerstand... :( Danke Luca Bertoncello (lucab...@lucabert.de)