Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

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

Offline woteb

  • Lid
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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)