Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

snmp sein Daemon und ein Nachrichtendienst (?)

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

snmp sein Daemon und ein Nachrichtendienst (?)

Beitrag von DrSputnik »

Suse SLES8SP3 Kernel 2.4.21-268 oder so...

Folgendes Problem.

Ich habe eine Netzwerk USV einen WinXP PC und halt den Linuxserver.

Wenn ich der USV den Strom wegnehme erscheint auf dem Win-PC via Nachrichten Messenger die Nachricht - USV Saft weg!!
mit ethereal gesnifft erhält auch der Linux die Nachricht - nur wer ist dafür verantwortlich, das diese angezeigt wird - das macht die Machine nämlich nicht.

Darauf installiert habe ich von APC den PowerChute Network Shutdown, der bietet auf Port 3052 der Linux eine http-Configuration an.
Dort habe ich alles wie bei dem Win-PC eingerichtet, auch dort ist das PCNS installiert.

Im Install-Path /usr/local/bin/Powerchute habe ich im bin-Dir ein Script "notifier" gefunden. Diese gibt nur leider beim händischen Starten folgende Fehlermeldung raus:

./notifier: line 38: [: =: unary operator expected


Ich glaube, dass dieses Script nicht funktioniert, oder gar nicht erst aufgerufen wird.
Habe es auch mal in die Ecke gestellt und ein eigenes dort erstellt.

/usr/bin/wall "test"

die Datei test existiert.
Bringt aber auch nichts.

Hier das notifier-Script:

-----------------------------------------
#!/bin/sh
# @(#)UNIX_notifier.sh 1.0
# Copyright 1999, American Power Conversion, Inc.
#
# NAME: notifier.sh
#
# REV: 1.0
#
# LAST MODIFIED: 3/29/99 14:05:25
#
# DESCRIPTION: Will send the message to the users specified.
# The parameters passed include -
# USER: single user to receive messages
# MSG: message to be sent
# SENDTOALL: ALL (send to all users)
# SPECIFIC - send to USER

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/usr/ccs/bin
export PATH

# Send the message to a single user
SendSingle() {
USER=`echo $USER | sed s/\"//g`
echo $MSG | write $USER 2>/dev/null
}

# Send the message to all users
SendAll() {
echo $MSG | wall 2>/dev/null
}

SOURCE=$2
SPACE=" "

# Add all words of a multi-word message together
MSG=$1
shift
until [ $1 = \"PowerChute\" ]
do
MSG=`echo $MSG$SPACE$1`
shift
done
# Remove references to PowerChute network shutdown
shift
# Decide if message is to ALL users or to a specific user
if [ $1 = SPECIFIC ]
then
#send message to specific users only
USER=$2
SendSingle
else
# send message to all users
SendAll
fi

# Cleanup

rm -f $MSG
rm -f $USER
rm -f $SPACE


----------------------------------------

Hoffentlich kann mir jemand schnell und gut weiter helfen..

Frohe Weihnachten und ´nen guten Rutsch.

Dr.Sputnik
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Dieses Skript erwartet einen oder zwei Parameter mit denen angegeben wird wer angesprochen wird. Das Program wall versendet Rundrufe an alle tty und ptys:
linux@otto:~>echo "Merry Christmas" | wall
Eine ähnliche Stelle findet sich im Skript in der Funktion SendAll:

Code: Alles auswählen

.SendAll() {
echo $MSG | wall 2>/dev/null
}

In einem weiteren Teil wird der erste übergebene Parameter als Beginn der Nachricht identifiziert Dann werden alle weiteren Parameter als Teil der Nachricht übernommmen bis das Wort PowerChute die Nachricht abschließt. Danach entscheidet das nächste Wort fasll es existoert darüber was mit der Nachricht passiert. Steht dort SPECIFIC wird als nächstes Wort der User erwartet an den die Nachricht gesendet wird.

Das Skript verfügt über keinerlei Behandlung von fehlerhaften Eingaben, so dass zu vermuten ist, dass es von einem anderen Skript aufgerufen wird in etwa so:
Einzelnnachricht an den user otto:
linux: /usr/local/bin/Powerchute# ./notifier.sh Hallo Otto PowerChute SPECIFIC otto
Nachricht an alle:
linux: /usr/local/bin/Powerchute# ./notifier.sh Das ist eine Rundruf PowerChute
Also solltest du einen xterm oder eine Konsole öffnen und beobachten ob eine Nachricht ankommt. darüberhinaus muss natürlich ein Server auf besagten Port lauschen oder im inetd bzw xinetd eingetragen sein.


mfg
gaw
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

Danke

Beitrag von DrSputnik »

Ja, besten Dank erstmal,

dann kann ich am Montag mal schauen, ob mir das weiterhilft.

Die Hotline von APC ist nämlich der Meinung, dass Linux genau wie Windows einen Nachrichtendienst hat - Schade, dass die ihre eigene Software nicht kennen
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Ein Tip noch. Es gibt net-snmp (Unter SuSE als snmp- Paket)

mfG
gaw
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

Beitrag von DrSputnik »

gaw hat geschrieben:Ein Tip noch. Es gibt net-snmp (Unter SuSE als snmp- Paket)

mfG
gaw
Das Paket ist installiert.

Habe deinen Syntax-Tip getestet, leider funzt das Script auch so nicht, mal sehen was APC dazu sagt.

Danke
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Was an dem Skript funtioniert denn nicht? Oder anders ausgedrückt was erwartest du?

Diese Skript erzeugt keinen grafischen output, also kein popup-Fenster, Dialog oder ähnliches.

mfG
gaw
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

Beitrag von DrSputnik »

gaw hat geschrieben:Oder anders ausgedrückt was erwartest du?
ich erwarte, dass nach eingabe von

Code: Alles auswählen

./notifier NACHRICHT PowerChute
eine broadcoastmeldung erscheint, genau wie die vom wall

oder sehe ich das falsch
????
Dr.
Zuletzt geändert von DrSputnik am 27. Dez 2004, 21:33, insgesamt 1-mal geändert.
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

Beitrag von DrSputnik »

gaw hat geschrieben:darüberhinaus muss natürlich ein Server auf besagten Port lauschen oder im inetd bzw xinetd eingetragen sein.
Welche Portnummer denn???
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Das müsstest du besser wissen:
mit ethereal gesnifft erhält auch der Linux die Nachricht - nur wer ist dafür verantwortlich, das diese angezeigt wird - das macht die Machine nämlich nicht
mfG
gaw
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

Beitrag von DrSputnik »

der snmpd - also, der läuft und läuft und läuft....

btw.

ich habe eine Mail von APC erhalten:
leider wird der Suse Linux Enterprise Server ofiziell nicht von unserer Software unterstuetzt.


-------------------------------------------------
Best Regards

APC Technical Support Engineer
Ballybrit Business Park
Galway, Ireland
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Das bedeutet nur, dass die keinen Support leisten wollen, nicht das es evt. nicht doch funktioniert. Schließlich lässt sich snmp sio konfigurieren dass es auf Nachrichten auf bestimmten Ports lauscht und entsprechend reagiert. Versuchen lohnt sich vielleicht.

mfG
gaw
DrSputnik
Member
Member
Beiträge: 70
Registriert: 8. Mär 2004, 12:16

erstmal Frohes Neues

Beitrag von DrSputnik »

Denke auch, dass der läuft, habe aber keine Zeit zum Testen und ausprobieren, ausserdem zahlt das auch wieder keiner. Habe jetzt eine serielle Schnittstelle eingebaut und mache das ganze darüber.

Besten Dank für die Hilfe.

Gruss Dr.Sputnik
Antworten