• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

WOL

Telman

Newbie
hallo
ich bin neu hier. und gleich ein problem und zwar geht es um "sh" prgramierung
problemstellung
wenn der fenseher eingeschaltet wird soll die medienzetralle auch einschalten (über USB-Fernbedinung und PCI geht nix getest) das einzigve was geht ist WOL derr fernsehee hat natürlich lan.
die funtionkette sieht so aus
fernseher lan--> FREETZbox (GELINUXTE FRITZBOX ) lan --> medien pc
das ganze soll über die"bash" realisiert werden
test über telnet sagt geht einwandfrei

nur komme ich beim PRG nicht mehr weiter. BZW es ging schon mal aber der code war zu aufgebläht und erzeigt zu fil last.
der code
Code:
#!/bin/sh
# Ein Script zum aufwecken meines Rechners wenn der fernseher eingeschalt wird
# Name: wakeup.sh


mac="D0:50:99:3C:13:29" # MAC-Adresse meines Rechners

ipr="192.168.178.32" #IP des Rechners

ipf="192.168.178.34" # IP des Fernsehers

pingf=$(ping -c 1 -w 1 -q "$ipf" | grep -c "1 packets received") # test op Fernseher an 

pingr=$(ping -c 1 -w 1 -q "$ipr" | grep -c "1 packets received") #test ob Rechner an

z=$(($z+1)) #wieviele durchgänge braucht das PRG
export z #exportiren

zv=$(($zv+1)) #ausstiegzähler
export zv #exportiren


if test $pingf = 1 #auswertung ob Fernseher an
then # wenn ja
	elif test $pingr = 1 #test ob rechner an
	then # rechner an ja -->exit
		test $zv -gt 1 # test ob schon länger an
		#wenn ja exit	
		exit 0
	else  # wenn nein ausgabe
		echo "rechner startet bei versuch $z"
		# >> /var/media/ftp/UStor00/logs/poweron.log
		exit 0
	fi
else # nein --> einschlten zähler nullen
	ether-wake -i eth1 "$mac"
	z=0 #zähler
	zv=0 #versuchszähler
	export z
	export zv
	sleep 5
fi

fi
exit 0
wenn das thma hier falsch ist oder schon behandelt--> bitte hinschieben sagen wo
wenn noch infos benötigt werden einfach sagen
für eine lösung währe ich sehr dankbar- da ich schon dreitage dranhänge und es langsam nerft
er hängt bei
Code:
elif

wenn jemand eine vernüftige anleitung oder ein tut kennt ist mir das genausolieb
Danke
 

muck19

Hacker
Wo soll das Skript den überhaupt liegen?
Auf dem Fernseher? (ich hab da keine Ahnung ob sowas geht)

Gruss
Michael
 

spoensche

Moderator
Teammitglied
Deine beiden if Statements sind nicht ganz korrekt. Wenn du mit test zwei Strings vergleichst, dann verwendest du "=", wenn du aber zwei Integer vergleichst, dann wird "-eq" verwendet.
 
OP
T

Telman

Newbie
Code:
#!/bin/sh
# Ein Script zum aufwecken meines Rechners wenn der Fernseher eingeschalt wird
# Name: wakeup.sh


mac="D0:50:99:3C:13:29"	#MAC-Adresse meines Rechners

ipr="192.168.178.32"	#IP des Rechners

ipf="192.168.178.34"	#IP des Fernsehers

pingf=$(ping -c 1 -w 1 -q "$ipf" | grep -c "1 packets received")	#test op Fernseher an 

pingr=$(ping -c 1 -w 1 -q "$ipr" | grep -c "1 packets received")	#test ob Rechner an

if test $pingf -eq 0	#auswertung ob Fernseher an
then	# wenn nein exit
	exit 0
fi

if test $pingr -eq 1	#test ob rechner an
	then	#rechner an ja -->exit
			exit 0
	else	#fernseher an rechner nein --> einschlten zähler nullen
		ether-wake -i eth1 "$mac"
		sleep 5
fi
exit 0

so sieht es fertig aus wenns wer brauchen kann sichs kopieren bitte
ich wuste garnicht zwichen zahlenwerten und "buchstabenwerten" unterschieden wird.
das wars dann auch mehr oder weniger
und natürlich liegt das auf der fritzbox. sonst müste ich den fernseher nicht pingen oder
und es müste mit "samygo" auch mitn fewrnseher gehen. dazu müste ich aber den fernseher mit linux bespiehlen dann ist aber garantie futsch
 
Oben