• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Script zum Rechner herunterfahren

A

Anonymous

Gast
Jetzt wird aber langsam das Huhn in der Pfanne verrückt.
mach mal
Code:
cat test.sh
ls -il test.sh
./test.sh

und gib mal die gesamten Ausgaben rüber.

robi
 
Code:
server:/home/ce/bin # cat test.sh
#!/bin/bash
  
  typeset -i i
  i=0
   while [ $i -lt 10 ]
  do
     i=$i+1
     echo $i
  done
server:/home/ce/bin # ls -il test.sh
 122991 -rwx------    1 root     root          105 Dec 10 19:52 test.sh
server:/home/ce/bin # ./test.sh
./test.sh: line 2:  : command not found
./test.sh: line 3:  typeset: command not found
./test.sh: line 4:  i=0: command not found
./test.sh: line 5:  : command not found
./test.sh: line 6:  do: command not found
./test.sh: line 7:  : command not found
./test.sh: line 8:  : command not found
./test.sh: line 9:  done: command not found
server:/home/ce/bin #

Ich hoffe, ich habe da keinen gravierenden Fehler gemacht. Bitte nicht steinigen...
 
A

Anonymous

Gast
lösch mal die erste Zeile #! /bin/bash und versuchs mal so.
schau mal was echo $PATH und ls -il /bin/*sh
rob@dhcppc1:~> ls -il /bin/*sh
22 -rwxr-xr-x 1 root root 96152 2004-04-06 03:31 /bin/ash
2143 -rwxr-xr-x 1 root root 447256 2004-04-24 20:57 /bin/bash
2131 lrwxrwxrwx 1 root root 4 2004-10-24 14:58 /bin/csh -> tcsh
14353 -rwxr-xr-x 1 root root 5884 2004-04-06 03:55 /bin/rescan-scsi-bus.sh
19 lrwxrwxrwx 1 root root 4 2004-10-24 14:58 /bin/sh -> bash
2176 -rwxr-xr-x 1 root root 365761 2004-04-06 03:36 /bin/tcsh
2138 -rwxr-xr-x 1 root root 441296 2004-04-06 03:21 /bin/zsh
rob@dhcppc1:~> echo $PATH
/home/rob/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin

wechsle mal das komplette Terminal also entweder xterminal neu aufmachen oder mit STRG-ALT-F2 (STRG-ALT-F7 kommst du wieder zurück) und probiere noch mal.
Ändere die Zugriffsrechte auf 777 und probiere als anderer user.

irgendwas scheint hier bei dir etwas verbogen zu sein.

robi
 
Ich kann nichts abweichendes finden.
Auch mit 777-Rechten ist es das selbe. Kann es sein, dass es an der Bash Version liegt? Ich habe bash 2.05b-207.
 
A

Anonymous

Gast
@alle
währe nett wenn mal jemand das script ausprobiert und sein Ergebniss postet ,
Ich bin mit meinem Latain am Ende.
Habe schon stundenlang versucht das nachzuvollziehen. Ist mir auch gelungen aber nur mit ganz bösen Tricks, und mit denen dürfte dein System gar nicht mehr booten geschweige denn normal arbeiten, weil die bash gar nicht mehr arbeitet.

Das ganze Script besteht nur aus Kommands der Bash selbst, und ich kann mir nicht vorstellen, dass es eine Bashversion geben sollte, die solche Fehler produzieren würde. Der Fehler muss wohl im Script liegen. Was mich verwundert, dass er LEERZEILEN (ob mit oder ohne SPACE kann ich nicht erkennen) anmeckert.
Vielleicht versucht du mal alle Leerzeichen zu entfernen. Wie gesagt, mir fällt dazu nicht vernünftiges ein.

robi
 
A

Anonymous

Gast
Dein Problem hat mich heute den ganzen Abend nicht in Ruhe gelassen, habe jetzt eine mögliche Erklärung. Wenn ich in dem Script das erste normales SPACE lasse und das zweite SPACE durch ein NO-BREAK SPACE (0xA0) aus dem ISO-Zeichensatz ersetze, dann erhalte ich genau diese Ausgaben mit cat und beim Ausführen des scriptes. Allerdings sehe ich das "Sonderzeichen" als blaues ^T wenn ich das Script mit dem vi öffne.
Das könnte bedeuten, dass evtl. bei dir beim umkopieren vom Browser in das Terminal irgend etwas mit der Konvertierung der Zeichensätze schief läuft.
Na, ja - Ist nur so ne Idee, aber erst mal besser wie gar nichts.

robi
 
Es geht!!!! :D :D :D
Es war tatsächlich so. Es müssen sich beim kopieren irgendwelche Zeichen falsch konvertiert haben. Ich habs jetzt alles per Hand abgeschreiben, und siehe da!!
Ich bin begeistert. Vielen Dank für die ganze Mühe.
Noch eins: wie kann ich einen oder mehrere weitere Ports abfragen, quasi eine logische ODER Vernüpfung? Hab schon ein bisschen ausprobiert, hat aber alles nicht hingehauen. Das wäre dann der Gipfel!!

Gutes Nächtle (ich hoffe du kannst jetzt beruhigt einschlafen :) )
 
A

Anonymous

Gast
wie kann ich einen oder mehrere weitere Ports abfragen, quasi eine logische ODER Vernüpfung?
ganz einfach die grep Pattern erweitern zB.
Code:
if [ $(netstat -an | grep -e 192.168.1.111:139 -e 192.168.1.111:22 -e 192.168.1.111:513 | wc -l ) -ge 1 ]
oder
Code:
if [ $(netstat -an | grep -f PATTERNFILE | wc -l ) -ge 1 ]

INHALT von PATTERNFILE
192.168.1.111:139
192.168.1.111:22
192.168.1.111:111

Damit kannst du dann alle Ports abfragen, die du überwachen willst.
Erst wenn keiner mehr da ist, und auch 10 Tests keiner kommt, dann fährt die Kiste runter.

robi
 
Das mit der Patternfile hat irgendwie nicht geklappt, aber die andere Version reicht ja. Nochmal vielen Dank für deine Mühe. Ich habs noch ein wenig ausgebaut mit Logfile und so, echt klasse jetzt.

Danke
 
Oben