Vinnaren i pepparkakshustävlingen!
2015-04-08, 20:39
  #1
Medlem
Hej!

Eftersom min vpn kan koppla ner lite då o då tänkte jag att det var en bra ide om cron fick hålla koll på det åt mig och stoppa transmission när det inträffar. Jag trodde det skulle vara en rätt lätt grej att fixa och det är det säkert, men tydligen inte för mig

ska jag vara ärlig är jag rätt lost på det här, jag har aldrig använt mig av "if & else" tidigare, så om någon kan ge mig en knuff i rätt riktning så är det uppskattat.

Det jag försöker åstadkomma är alltså: om tun0 dyker upp i ifconfig = gör inget, om tun0 inte dyker upp = döda transmission (går det ens att göra?). Det sista händer inte, det efter "else" verkar ignoreras

Kod:
#!/bin/sh
IFCONFIG="ifconfig | grep 'tun0'"
TUN="tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
TRANS="service transmission-daemon stop"

if [ "$IFCONFIG"="$TUN" ]; then
        exit
else
        $TRANS
fi
Citera
2015-04-08, 23:31
  #2
Medlem
Afros avatar
För att variablen IFCONFIG innehåller inte resultatet av kommandot, utan är strängen "ifconfig | grep 'tun0'"

Antingen kan du skriva det som IFCONFIG=`ifconfig | grep "tun0"`

eller så kan du skriva IFCONFIG=$(ifconfig | grep "tun0") vilket jag tycker är mer lättläst.

eller så här kanske
Kod:
#!/bin/sh

if ifconfig | grep -q "tun0"
then 
	exit
else 
	service transmission-daemon stop
fi
Citera
2015-04-09, 12:47
  #3
Medlem
åfan, tack! det fungera
Citera
2015-04-16, 14:55
  #4
Medlem
101.s avatar
Det hade dock varit långt säkrare att alltid routa all trafik till tun-interfacet (ev med undantag för WebUI på en egen unik öppen port). Nuvarande setup lämnar rum för att ditt riktiga IP registeras hos trackern.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback