Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Script zum Rechner herunterfahren

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

Jetzt wird aber langsam das Huhn in der Pfanne verrückt.
mach mal

Code: Alles auswählen

cat test.sh
ls -il test.sh
./test.sh
und gib mal die gesamten Ausgaben rüber.

robi
niemalsaufgeben
Newbie
Newbie
Beiträge: 40
Registriert: 15. Sep 2004, 16:00

Beitrag von niemalsaufgeben »

Code: Alles auswählen

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...
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

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
niemalsaufgeben
Newbie
Newbie
Beiträge: 40
Registriert: 15. Sep 2004, 16:00

Beitrag von niemalsaufgeben »

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.
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

@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
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

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
niemalsaufgeben
Newbie
Newbie
Beiträge: 40
Registriert: 15. Sep 2004, 16:00

Beitrag von niemalsaufgeben »

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 :-) )
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

wie kann ich einen oder mehrere weitere Ports abfragen, quasi eine logische ODER Vernüpfung?
ganz einfach die grep Pattern erweitern zB.

Code: Alles auswählen

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: Alles auswählen

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
niemalsaufgeben
Newbie
Newbie
Beiträge: 40
Registriert: 15. Sep 2004, 16:00

Beitrag von niemalsaufgeben »

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
Antworten