Re: Frage an die Script Profis

2016-10-26 Diskussionsfäden Kevin Mäder

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

2016-10-26 Diskussionsfäden Carsten Weber
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

2016-10-26 Diskussionsfäden Martin Schuchardt
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

2016-10-26 Diskussionsfäden Bernhard Hering

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

2016-10-26 Diskussionsfäden 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


smime.p7s
Description: S/MIME cryptographic signature


Re: Tonerstand per SNMP ermitteln

2016-10-26 Diskussionsfäden Luca Bertoncello

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

2016-10-26 Diskussionsfäden Hilmar Preuße

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

2016-10-26 Diskussionsfäden Luca Bertoncello

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

2016-10-26 Diskussionsfäden Hilmar Preuße

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

2016-10-26 Diskussionsfäden Luca Bertoncello

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

2016-10-26 Diskussionsfäden Luca Bertoncello

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

2016-10-26 Diskussionsfäden Hilmar Preuße

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

2016-10-26 Diskussionsfäden Luca Bertoncello

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)