[SCRIPT] simpel script onder linux?

Pagina: 1
Acties:
  • 182 views sinds 30-01-2008
  • Reageer

  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Hallo,

Ik probeer een programma in een loop te plaatsen via een stukje script. Ik heb gewoon een text file aangemaakt en die heb ik executable gemaakt.
code:
1
2
3
4
5
$ while true
    do
    ./setiathome >/dev/null &
    sleep 21600 
    done

Wat moet ik doen om dit werkend te krijgen?

alvast bedankt

grtz Deltafox

  • hennink
  • Registratie: Augustus 2000
  • Laatst online: 12-08 19:50
Zet eens bovenaan #!/bin/sh

alles wat aan kan, gaat kapot. De vraag is alleen wanneer.


  • Liegebeest
  • Registratie: Februari 2002
  • Laatst online: 19:39
In principe is het genoeg om "chmod +x" op het bestand te doen... Daarmee maak je'm executable...

Oh... en bij "./setiathome >/dev/null &" zou ik voor de vorm voor de "&" nog "2>/dev/null" toevoegen... Mochter er nu foutmeldingen verschijnen uit je setiathome progje, dan zie je die ook niet :)

Groeten!

Liege, liege, liegebeest!


  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Het werkt nog steeds niet
code:
1
2
3
4
5
6
#!/bin/sh
$ while true
    do
      ./root/seti/setiathome >/dev/null &
      sleep 21600
    done

foutmelding:

./seti: $: command not found
./seti: line 3: syntax error near unexpected token `do'
./seti: line 3: ` do'

en waar moet ik een 2 bij zetten om foutmeldingen ook naar /dev/null te schrijven?? dat snap ik ff niet

alvast bedankt voor de hulp

grtz Deltafox

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Op dinsdag 05 maart 2002 09:36 schreef Deltafox het volgende:
Het werkt nog steeds niet
code:
1
2
3
4
5
6
#!/bin/sh
$ while true
    do
      ./root/seti/setiathome >/dev/null &
      sleep 21600
    done

foutmelding:

./seti: $: command not found
./seti: line 3: syntax error near unexpected token `do'
./seti: line 3: ` do'

en waar moet ik een 2 bij zetten om foutmeldingen ook naar /dev/null te schrijven?? dat snap ik ff niet

alvast bedankt voor de hulp

grtz Deltafox
lol.. lache dat copy/paste.
Probeer dit eens:
code:
1
2
3
4
5
6
#!/bin/sh
while true
do
     ./root/seti/setiathome >/dev/null 2>&1 &
     sleep 21600
done

  • Sequence
  • Registratie: Maart 2000
  • Laatst online: 27-05-2024

Sequence

Online marketing

uh, ik neem aan dat dit een DPC-seti client is? ;)

  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Nu krijg ik mijn prompt niet meer terug he, dat komt natuurlijk door die loop is het niet?

nu moet ik dat script weer in de background draaien

en kan ik dan dat script laten runnen at boot door hem te adden in /etc/rc.d/rc.local of is dat niet netjes?

grtz Deltafox

Verwijderd

Op dinsdag 05 maart 2002 10:05 schreef Deltafox het volgende:
Nu krijg ik mijn prompt niet meer terug he, dat komt natuurlijk door die loop is het niet?

nu moet ik dat script weer in de background draaien

en kan ik dan dat script laten runnen at boot door hem te adden in /etc/rc.d/rc.local of is dat niet netjes?

grtz Deltafox
./script & om hem in de background te starten

  • Liegebeest
  • Registratie: Februari 2002
  • Laatst online: 19:39
Toevoegen aan rc.local moet kunnen lijkt me...
Vermits je die "&" toevoegt voor het in de background draaien...

En dat "2>" is redirection van output...
Geef je iets op als ">/dev/null", dan zeg je dat standard output naar /dev/null moet... Geef je tevens iets op als "2>/dev/null" of "2>&1", dan zeg je dat ook foutmeldingen e.d. daar naartoe moeten...

Liege, liege, liegebeest!


  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Op dinsdag 05 maart 2002 09:58 schreef Sequence het volgende:
uh, ik neem aan dat dit een DPC-seti client is? ;)
hehehe nope een Team Meibok client...:D

grtz Deltafox

  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Ik heb het nu helemaal werkende en documentatie geschreven, ik zal het ff posten:

Installatie setiathome client:

Doel:
We gaan een Linux server voorzien van een setiathome client.

Gebruikte onderdelen:
Linux Mandrake 8.1 installatie

Werkwijze:

1) Log in als root
2) Download de setiathome client:

Wget ftp.cdrom.com/pub/setiath...-linux-gnu-gnulibc2.1.tar

3) Dan pakken we de file uit:

Tar xvf setiathome-3.03.i386-pc-linux-gnu-gnulibc2.1.tar

4) Dan veranderen we naam van de directory:

Mv setiathome-3.03.i386-pc-linux-gnu-gnulibc2.1 seti

5) Start de client en vul je gegevens in:

Cd seti
./setiathome

6) Als de client begint met rekenen sluiten we hem af met <ctr> C
7) Nu gaan we een script schrijven, open daarvoor een file:

Joe script

8) In dit script komt de volgende code, die ervoor zorgt dat de client blijft draaien, ook al zou hij ermee stoppen om een of andere reden, dan zorgt dit script ervoor dat hij even later weer opnieuw wordt gestart.

#!/bin/sh
while true
do
./setiathome >/dev/null 2>&1 &
sleep 21600
done

9) Nu gaan we dit script laten starten bij het opstarten van de computer. Open daarvoor de file /etc/rc.d/rc.local en voeg onderaan deze file de volgende regels toe:

Cd /root/seti
./idle &

10) Klaar! Nu zal telkens als de computer opstart het script worden gestart die de client lopende houdt.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
klein puntje van kritiek:
Netjes dat je zinnen met een Hoofdletter begint, maar Mv, Wget, Cd en Tar gaan echt niet werken : )

  • Deltafox
  • Registratie: Augustus 2001
  • Laatst online: 26-12-2025
Dat doet die fucking word van Microsoft automatisch :(

sorry

  • Paradise
  • Registratie: Juni 2000
  • Niet online
9) Nu gaan we dit script laten starten bij het opstarten van de computer. Open daarvoor de file /etc/rc.d/rc.local en voeg onderaan deze file de volgende regels toe:

Cd /root/seti
./idle &
Ik neem aan dat je dat evengoed ook als /root/seti/idle & kan doen ;)

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

7) Nu gaan we een script schrijven, open daarvoor een file:

Joe script

...

9) Nu gaan we dit script laten starten bij het opstarten van de computer. Open daarvoor de file /etc/rc.d/rc.local en voeg onderaan deze file de volgende regels toe:

Cd /root/seti
./idle &
eeehm, misschien mis ik hier iets, maar waar komt de naam van dat script (idle) nou opeens vandaan ?
Volgens mij moet je bij punt 7 daar nog wat bijzetten.

Ik mis ook de chmod om het script executable te maken...

Verwijderd

Waarom schrijf je geen cronjob? Dit gemier met sleeps is niet nodig, je kunt gewoon een cron-job eens in de 6 uur laten lopen.

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

ja, het kan natuurlijk mooier, maar dan wordt het waarschijnlijk ook ingewikkelder voor de topic starter.
Nadeel van deze oplossing is dat je theoretisch bijna 6 uur eruit kan liggen.
Beter is het natuurlijk om een script te schrijven wat checkt of het seti proces nog aanwezig is. Zo niet dan opstarten.
Dit script dan vervolgens om de 5 minuten laten starten door cron (of iedere minuut, wat je wil).

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:47

Kees

Serveradmin / BOFH / DoC
crontabje om te checken of hij nog bestaat :)
(losse pols btw, niet getest)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash

LOCATIE=/root/seti
start() {
    ${LOCATIE}/setiathome >/dev/null &
    echo "${!}" > /var/run/seti.pid
}

stop() {
    kill /var/run/seti.pid
    rm /var/run/seti.pid
}

check_start() {
    SETI_PID=`cat /var/run/seti.pid`
    if [ ! -d /proc/$SETI_PID ]
    then
      start
    fi
}

case $1 in
    "start")
      start
      ;;
    "stop")
      stop
      ;;
    "test")
      check_start
      ;;
    *)
      echo "usage $0 start|stop|check"
    ;;
esac

die code:
cat > /usr/local/bin/seticheck
(afsluiten met ctrl-d)
en dan:
chmod 700 /usr/local/bin/seticheck

crontab aanmaken:
crontab -e
naar beneden gaan:
"i" [copy-paste onderstaande lijn] "esc" ":wq[enter]"

*/5 * * * * /urs/local/bin/setiscript check > /dev/null 2> &1

even opstarten met "setiscript start" stoppen kan met "setiscript stop", handmatig checken met "setiscript check"

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Op dinsdag 05 maart 2002 16:54 schreef Kees uit de losse pols een scriptje
mooi :)

* grep hoopt dat hij op een dag ook scriptjes uit de losse pols kan schrijven
Pagina: 1