exteren Schalter

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Anyone
Beiträge: 4
Registriert: 18.09.2007 21:51:48
Wohnort: Remscheid
Kontaktdaten:

exteren Schalter

Beitrag von Anyone » 18.09.2007 22:02:38

Hallo Zusammen,
ich würde gerne einen exteren Schalter (ganz einfacher Schalter mit 2 Positionen) an meinem Debian-system anbringen. Von welchem ich dann den Status in einem .sh-Script mit eine IF-Abfrage abfragen kann. Ich hatte mit gedacht, das ganze vieleicht über eine Serielle-Schnittstelle zu bewerkstelligen. Leider habe ich keine ahnung, wie ich das bewerkstelligen soll.

OS: Debian GNU/Linux, kernel 2.6.18-5-686
Des Ding läuft ohne Tastatus und Monitor als Samba-Server.

Freue mich schon auf Antworten :)

Gruß
Ivo

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 19.09.2007 11:36:03

moin, moin,

mit statserial kannst du die Steuerleitungen einer seriellen
Schnittstelle abfragen. Wenn du den Schalter z.B. zwischen
DTR (Pin 4) und DSR (Pin 6) am COM1 anschließt, liefert dieser
Ausdruck eine 0 für AUS und eine 256 für EIN:

Code: Alles auswählen

$((`statserial -d /dev/ttyS0` & 256))
Sollte das wider Erwarten nicht funktionieren, könntest du
nachmessen, ob an DTR mindestens +5 Volt rauskommen
und/oder externe 5 bis 12 Volt in den DSR-Pin einspeisen.

Bei 25-poligen COM-Ports ist DSR auch auf 6, DTR auf 20.
Beware of programmers who carry screwdrivers.

Anyone
Beiträge: 4
Registriert: 18.09.2007 21:51:48
Wohnort: Remscheid
Kontaktdaten:

Beitrag von Anyone » 19.09.2007 14:03:19

Super, danke für die schnelle Antwort.
Werde ich nachher mal ausprobieren.

Gruß
Ivo

Anyone
Beiträge: 4
Registriert: 18.09.2007 21:51:48
Wohnort: Remscheid
Kontaktdaten:

Beitrag von Anyone » 19.09.2007 19:19:14

So, hab alles fertig und funktioniert perfekt.
Danke für die hilfe!

Ivo

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Beitrag von Lord_Carlos » 19.09.2007 20:04:31

Anyone hat geschrieben:So, hab alles fertig und funktioniert perfekt.
Danke für die hilfe!

Ivo
HI Anyone
Ich würde gerne mal sehen wie dein fertiges script aussieht.
Ich habe in diesem Bereich leider Null Erfahrung.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Anyone
Beiträge: 4
Registriert: 18.09.2007 21:51:48
Wohnort: Remscheid
Kontaktdaten:

Beitrag von Anyone » 19.09.2007 20:20:59

Natürlich...
Ist ein kleines Script, welches ab 10 uhr Abends per Cron alle 5 min ausgeführt und alle Rechner hier anpingt. Wenn kein Rechner mehr erreichbar ist, fährt er runter. Morgens fährt er dann ab 10 uhr wieder automatisch hoch (Bios Einstellung).
Der kleine Externe Schalter soll das ganze einfach unterdrücken.

Code: Alles auswählen

##!/bin/sh

clear

if [ $((`statserial -d /dev/ttyS0` & 256)) = 256 ]
then
	shutdown=true
else
	shutdown=false
fi

export ips="2 3 4 5 6 7 9"

if $shutdown; then
for I in $ips
do
	if ping -c1 -q 192.168.1.$I > /dev/null
	then
		shutdown=false
		echo 192.168.1.$I ist erreichbar
	else
		echo 192.168.1.$I ist nicht erreichbar
	fi
done
fi

if $shutdown; then
	echo SERVER wird heruntergefahren
	datum=`date +%Y-%m-%d" "%H:%M:%S`
	echo $datum - SERVER wird heruntergefahren >> /home/log.txt
	halt
else
	echo SERVER wird nicht heruntergefahren
fi
Gruß
Ivo

Antworten