Donnerstag, 23. November 2017, 17:27 UTC+1

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: NAS Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Donnerstag, 30. Oktober 2008, 21:22

NAS2001b webserver stürzt unregelmäßig ab mit lösung (wie4220)

http://de.nas-4220.org/index.php/FAQs#th…m_zu_l.C3.B6sen

auch mein webserver stürzt unregelmäßig ab,

kann aber ferngestartet werden (so man es merkt),

nur ist das keine Lösung weil man ja den Lauf nicht täglich überprüft oder überprüfen kann :ärgern:



war grad 2 Wochen in Ägypten ohne Webzugang,

habe mal kurz eine Grußkarte online gestellt und

eine Woche später lese ich ob ich die aus dem Netz genommen habe ?

weil sie keiner mehr sieht

also Abhilfe muss her

es gibt ja siehe oben eine Lösung, nur muss das irgendwie passend ins do_it gebaut werden

auf noch mehr Scripte und Tools hab ich keinen Bock


also gebastelt:

Quellcode

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
#
#PATH: /mnt/IDE1/public/applications/do_it
#FILE: regular_checks.background
#
# ab hier webserver restart
#
USD=$(cat /usr/sausalito/codb/objects/1/Disk.rootdir 2> /dev/null)/public/applications 
# bildet hier: "/mnt/IDE1/public/applications"

# every 30 seconds run the following loop
while sleep 30; do
  RESTART=$(sed $= -n $USD/do_it/restart.txt) #restart count
  #check if the webserver has given up, restart if necessary
  PS_var=`ps`

  if !(echo $PS_var |grep $USD/web >/dev/null); then
    echo restart webserver
    /usr/sbin/thttpd -C $USD/webserver/thttpd.conf
    #tail –n 99 $USD/do_it/restart.txt > $USD/do_it/restart.txt 2> /dev/null ### tail gibt es nicht , also Nachbau:
    #tail Nachbau: tail –n 99 $USD/do_it/restart.txt > $USD/do_it/restart.txt 2> /dev/null
    # die letzten 99 Zeilen sichern und eine anhaengen, = maximal die letzten 100 restart Zeilen
    # um ein mögliches Anwachsen der restart.txt zu begrenzen und trotzdem zu sehen wann und wie oft in welcher Zeit/Datum
    #
    # die 100 ist es die bis 99 zählt, für mehr oder weniger halt anpassen
    # in der nächsten Zeile, nicht in der Kommentarzeile, sondern im IF !!!
    #
    #sed $USD/do_it/restart.txt -e :a -e '$q;N; !!! 100 !!! ,$D;ba' > $USD/do_it/restart2.txt #tail Nachbau
    #

    if [ $RESTART -gt 99 ]; then
      let ANFANG=$RESTART-99
      echo "...=$RESTART Anfang= $ANFANG" 
      sed $USD/do_it/restart.txt -e :a -e '$q;N;100,$D;ba' > $USD/do_it/restart2.txt #tail Nachbau welche die letzen 99 Zeilen in restart2 kopiert

    else 
      echo ".....=0 Anfang= 0" 
      cp $USD/do_it/restart.txt $USD/do_it/restart2.txt
    fi

    mv $USD/do_it/restart2.txt $USD/do_it/restart.txt # nach restart rueckkopiiert
    date >> $USD/do_it/restart.txt # den letzten restart anhaengt

  else
    rm $USD/do_it/testet-* 2>/dev/null 
    date > $USD/do_it/testet-`date +%Y_%m_%d__%H_%M_%S`.txt # wenn nix war wird nur testet geschrieben
  fi

done

zum starten:

Quellcode

1
2
3
4
5
6
#PATH: /mnt/IDE1/public/applications/do_it
#FILE: start_regular_checks.sh
#!/bin/sh
#
USD=$(cat /usr/sausalito/codb/objects/1/Disk.rootdir 2> /dev/null)/public/applications
$USD/do_it/regular_checks.background &

man könnte also im do_it init noch folgendes anhängen, path evt. anpassen

Quellcode

1
/mnt/IDE1/public/applications/do_it/start_regular_checks.sh

2

Dienstag, 30. Dezember 2008, 00:59

Weil ich wie viele andere auch meinen thttpd durch das übermäßige Laden von Bildern abschießen kann, bin auch ich auf das Script angewiesen.
Vielen Dank also dafür.

Ich habe es ein bisschen meinen Bedürfnissen angepasst, da der Diskspindown unter diesen Bedingungen nicht möglich war.
Ist mir aber aus verschiedenen Gründen wichtig dass es funktioniert.

Quellcode

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
36
37
#!/bin/sh
#
#PATH: /mnt/IDE1/public/applications/do_it
#FILE: regular_checks.background
#
# ab hier webserver restart
#
USD=$(cat /usr/sausalito/codb/objects/1/Disk.rootdir 2> /dev/null)/public/applications 
# bildet hier: "/mnt/IDE1/public/applications"

# every 10 seconds run the following loop
while sleep 10; do

  #check if the webserver has given up, restart if necessary
  PS_var=`ps`

  if !(echo $PS_var |grep $USD/web >/dev/null); then
	echo restart webserver
	/usr/sbin/thttpd -C $USD/webserver/thttpd.conf

	RESTART=$(sed $= -n $USD/do_it/restart.txt) #restart count (kommt mit in die Schleife, damit kein HDD-Zugriff)

	if [ $RESTART -gt 99 ]; then
  	let ANFANG=$RESTART-99
  	echo "...=$RESTART Anfang= $ANFANG" 
  	sed $USD/do_it/restart.txt -e :a -e '$q;N;100,$D;ba' > $USD/do_it/restart2.txt #tail Nachbau welche die letzen 99 Zeilen in restart2 kopiert

	else 
  	echo ".....=0 Anfang= 0" 
  	cp $USD/do_it/restart.txt $USD/do_it/restart2.txt
	fi

	mv $USD/do_it/restart2.txt $USD/do_it/restart.txt # nach restart rueckkopiert
	date >> $USD/do_it/restart.txt # den letzten restart anhaengt
  fi

done


Das Schreiben der tested-Datei fiel weg, da ich a eh weiß, dass alle x Sekunden ein check durchläuft.
Die RESTART-Variable habe ich mit in die Schleife gepackt, ich meine das hat auch noch gestört.