Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Scriptjes in een loop en interval uitvoeren  (gelezen 1480 keer)

Offline woteb

  • Lid
Scriptjes in een loop en interval uitvoeren
« Gepost op: 2008/11/21, 09:53:15 »
Ik heb een zeer irritant netwerkkaartje wat telkens op een te lage snelheid gaat draaien.
Nu heb ik een scriptje gemaakt met de volgende inhoud:
Citaat
#!/bin/sh
iwconfig wlan1 rate 54M
/etc/init.d/networking restart

Dat werkt voor een tijdje, maar op een gegeven moment moet ik het dan weer gaan draaien.

Nu mijn vraag: Hoe kan ik het scriptje aanpassen zodat het in een loop gaat draaien, of (nog beter) dat ik het met een interval van +/- 5 minuten kan draaien?
Laptop, HP 550, Dual Core 1 GB RAM/2 Ghz:: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie) Fluxbox / IceWM / XFCE4 / Openbox / LXDE.
3 Werkstations + 1 laptop: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie Gnome/XFCE/IceWM)
Server: Debian 5.0 Stable (Lenny)

Offline vanadium

  • Lid
Re: Scriptjes in een loop en interval uitvoeren
« Reactie #1 Gepost op: 2008/11/21, 13:36:21 »
Dit lijkt mij iets voor cron: via cron kan je een commando dagelijks, maar ook om de vijf minuten, uitvoeren.
Als je script om performantieredenen (niet dat je't zou merken) resident wil houden, dan kan je met een loop werken met het sleep statement.

Offline woteb

  • Lid
Re: Scriptjes in een loop en interval uitvoeren
« Reactie #2 Gepost op: 2008/11/21, 13:53:19 »
Tsja...... zo kan het natuurlijk ook. Bedankt voor de tip! Ik zal het zeker proberen!!

Maar, ik kwam op het internet dit scriptje tegen.  Hoe kan ik dat aanpassen zodat het dezelfde werking heeft, dus alleen ndig wanneer ik het bewuste kaartje moet gebruiken?

Citaat
#!/bin/ksh

export INTERVAL=2
export COUNT=2

export LOG=/usr/local/acme/logs/while_loop_test.log

export CTR=0
while [ true ]
do
   if [ ${CTR} -ge ${COUNT} ]
   then
      exit
   fi
   echo "#------- $(date +m%d-03/24/03M%S)"   
          >> ${LOG}
   ps  -f  -u  bv  -o  pid,pcpu,pmem,rss,vsz,comm   
          >> ${LOG}
   CTR=$(expr ${CTR} + 1)
   sleep ${INTERVAL}
done

Ik zie dat er met ksh wordt gewerkt. Kan ik dat ook voor sh gebruiken, en hoe moet ik het aanpassen zodat ik iwconfig wlan1 rate 54M && /etc/init.d/networking restart desnoods uit kan schakelen en alleen gebruiken wanneer ik met wlan1 aan de gang ben? Want met een crontab draait het toch in principe altijd, en dat is niet altijd de bedoeling.
Laptop, HP 550, Dual Core 1 GB RAM/2 Ghz:: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie) Fluxbox / IceWM / XFCE4 / Openbox / LXDE.
3 Werkstations + 1 laptop: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie Gnome/XFCE/IceWM)
Server: Debian 5.0 Stable (Lenny)

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Scriptjes in een loop en interval uitvoeren
« Reactie #3 Gepost op: 2008/11/21, 16:52:58 »
#!/bin/bash

while [ true ]
do
iwconfig wlan1 rate 54M
/etc/init.d/networking restart
sleep 5m
done
Opslaan in je home map als bijvoorbeeld wireless.sh
Daarna uitvoerbaar maken.

In /etc/rc.local zet je dan dit:

/home/woteb/wireless.sh &
(vlak boven het exit regeltje)

Dit zou het moeten doen.


Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Scriptjes in een loop en interval uitvoeren
« Reactie #4 Gepost op: 2008/11/21, 16:54:47 »
Het is wel een groot nadeel dat iedere keer je hele netwerk opnieuw gestart wordt.
Misschien is het handiger om via ifup en ifdown alleen je wireless te resetten? Dan heb je met een bedrade verbinding geen last meer van een haperende netwerkverbinding.

Offline woteb

  • Lid
Re: Scriptjes in een loop en interval uitvoeren
« Reactie #5 Gepost op: 2008/11/22, 19:03:15 »
Op zich werkt dit scriptje zoals het moet werken. Bedankt hiervoor. Het enigste probleem blijft nu dat de netwerkkaart zich telkens bij de dhcp server aan moet melden, en dat gaat niet altijd even goed. Bij streams en bij ssh verbindingen wordt de verbinding dan (te lang) verbroken. Eigenlijk zoek ik dus een oplossing waarbij de bitrate snelheid op 54M blijft staan.
Van de andere kant is dit een zeer irritant kaartje. Zodra je met de rechterhand in de buurt van dat ding komt, gaat de snelheid al drastisch omlaag. Ik heb de interval op 1 minuut gezet waardoor de verbinding weer snel op snelheid is, maar vanwege dat dhcp verzoek valt daardoor de verbinding te lang weg.
Ook crontab aanpassen biedt geen soelaas.
Laptop, HP 550, Dual Core 1 GB RAM/2 Ghz:: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie) Fluxbox / IceWM / XFCE4 / Openbox / LXDE.
3 Werkstations + 1 laptop: Debian 5.0 Testing (Squeeze)  (lite-blokkendoos editie Gnome/XFCE/IceWM)
Server: Debian 5.0 Stable (Lenny)