Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
snmp sein Daemon und ein Nachrichtendienst (?)
Moderator: Moderatoren
snmp sein Daemon und ein Nachrichtendienst (?)
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
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
Dieses Skript erwartet einen oder zwei Parameter mit denen angegeben wird wer angesprochen wird. Das Program wall versendet Rundrufe an alle tty und ptys:
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:
mfg
gaw
Eine ähnliche Stelle findet sich im Skript in der Funktion SendAll:linux@otto:~>echo "Merry Christmas" | wall
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:
Nachricht an alle:linux: /usr/local/bin/Powerchute# ./notifier.sh Hallo Otto PowerChute SPECIFIC otto
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.linux: /usr/local/bin/Powerchute# ./notifier.sh Das ist eine Rundruf PowerChute
mfg
gaw
Danke
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
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
ich erwarte, dass nach eingabe vongaw hat geschrieben:Oder anders ausgedrückt was erwartest du?
Code: Alles auswählen
./notifier NACHRICHT PowerChute
oder sehe ich das falsch
????
Dr.
Zuletzt geändert von DrSputnik am 27. Dez 2004, 21:33, insgesamt 1-mal geändert.
der snmpd - also, der läuft und läuft und läuft....
btw.
ich habe eine Mail von APC erhalten:
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
erstmal Frohes Neues
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
Besten Dank für die Hilfe.
Gruss Dr.Sputnik