script der kører hver time og checker at internettet er oppe
Jeg har på det sidste haft det problem, at netværket er ustabilt. Hvordan laver jeg et skript, der kører
sudo /etc/init.d/networking restart
en gang i timen (og altså også skriver root-kodeord, hvis det er nødvendigt)
Kører kubuntu
- Log in to post comments
Kommentarer5
Hvorfor?
Hvorfor vil du dog genstarte netkortet? Hvis netkortet skulle jo gerne genopretteforbindelsen når det er muligt. Er det fordi du mister IP adressen, det er ihverfald den eneste årsag jeg kan finde til at skulle genstarte netkortet.
Re: script der kører hver time og checker at internettet er opp
Hmm selv om at du mister ip'en er en full restart af netkortet vel ikke nødvendigt, kan man ike bare skrive dhclient ethX?
Kan ikke huske hvordan det lige er, men man kan skrive i /etc/sudoers at en bruger skal være i stand til at udføre specifikke commands med sudo uden at det er nødvendigt at indtaste password.
Re: script der kører hver time og checker at internettet er opp
Jeg er ikke klar over, hvorfor det sker. Men vores netværk er ikke stabilt, sandsynligvis pga. nogle trådløse repeatere som ikke helt kan nå hinanden.
Men det jeg leder efter er:
en måde, hvorpå man kan køre et skript en gang i timen
og
en måde, hvorpå man kan skrive root-kodeordet, hvis det behøves
/etc/sudoers
syntax for /etc/sudoers
brugernavn host = NOPASSWD: komando
i dit tilfælde noget i stil med
clauswilson localhost = NOPASSWD: /etc/init.d/networking restart
(ved ikke lige om det virker med localhost og selvfølgelig heller ikke om dit brugernavn er clauswilson)
ex på scriptet uden fejltjeck
#!/bin/bash
sudo /etc/init.d/networking restart
lav et symlink til dit script i /etc/cron.hourly
Men, som de to foregående indlæg peger på ville jeg nu hellere finde ud af hvad årsagen til problemet er.
Re: script der kører hver time og checker at internettet er opp
Her er et lidt modificeret script jeg brugte da jeg var den ulykkelige ejer af et yderst ustabilt stofanet.
Den giver dig en log over netproblemer i /var/log/netcheck
sudo crontab -e
01 * * * * /path/to/script 2> /dev/null
#!/bin/bash
restart_net(){
echo `date` restarting network >> /var/log/netcheck
dhclient eth0;
./$0
}
no_internet(){
echo `date` No internet >> /var/log/netcheck;
exit;
}
# local router not responding?
if !(ping -c 4 192.168.0.1 > /dev/null); then
restart_net;
fi
if (ping -c 2 google.com > /dev/null) ;then
exit;
elif (ping -c 2 stofa.dk > /dev/null) ; then
exit;
elif (ping -c 2 aau.dk > /dev/null) ; then
exit;
else
no_internet; #no response, but router is ok.
fi