Page 1 of 1

Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 21:21
by hasch
Nabend zusammen,
auch wenn meine Frage keinen *nix-Tiefgang bieten kann, hoffe ich doch, dass mir der ein oder andere Kenner weiterhelfen kann.

Problem:
Nachdem ich per Zufall in Putty auf die Bash Shell gewechselt hatte, war ich nun wieder per "csh" in der standardmäßigen Shell und wollte ein kleines Logfile-Rotation-Shellskript testen, aber es kam folgende Meldung:
/usr/local/apache/usr/local/apache/htdocs/public/log.sh: Command not found.
Rechte alle gesetzt (testweise auch 777 gesetzt), User darf es auch ausführen (root).

Habe auch andere Shellskripts getestet, gleiches "Phänomen".

Folgender Shellkript-Inhalt:

Code: Select all

#!/bin/sh

ServerRoot="/usr/local/apache/usr/local/apache/htdocs/abi2-007"

Aktuelles_Datum=`date +'%d.%m.%Y-%H:%M:%S'`

cp $ServerRoot/access_log $ServerRoot/access_log_$Aktuelles_Datum
cp $ServerRoot/error_log $ServerRoot/error_log_$Aktuelles_Datum

tar czf error_log.tar.gz error_log_$Aktuelles_Datum
tar czf access_log.tar.gz access_log_$Aktuelles_Datum

rm access_log_$Aktuelles_Datum
rm error_log_$Aktuelles_Datum

cat /dev/null > $ServerRoot/access_log
cat /dev/null > $ServerRoot/error_log

echo "Die alte Logdatei des Apache wurde soeben gespeichert und komprimiert. Eine neue Logdatei wurde angelegt."
Habt ihr eine Idee, woran es liegen kann?

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 23:05
by aquajo
Läuft den ein

Code: Select all

bash /usr/local/apache/usr/local/apache/htdocs/public/log.sh
oder ein

Code: Select all

bash -x /usr/local/apache/usr/local/apache/htdocs/public/log.sh

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 23:22
by flo
gibt es /bin/sh?

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 23:41
by gierig
/bin/sh exestiert? Und ist oder zeigt auf die gewünschte shell ?

ls -l /bin/sh


ansonsten

Code: Select all

/usr/local/apache/usr/local/apache/htdocs/public/log.sh: Command not found.
mhh sagt aber normalerweise, das das script ein Kommando nicht gefunden hat,
also date oder tar. Sind sie beim im %PATH mit drinne ?


btw.
ich bin der csh nicht wirklich fitt, aber musten da nicht Variabel mit "set var=nnn" definiert werden ?

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 23:43
by hasch
Bei bash ... kommt folgende Ausgabe:
: command not foundsr/local/apache/htdocs/public/log.sh: line 2:
: command not foundsr/local/apache/htdocs/public/log.sh: line 4:
: command not foundsr/local/apache/htdocs/public/log.sh: line 6:
/usr/local/apache/usr/local/apache/htdocs/public/log.sh: line 32: syntax error: unexpected end of file
Und bei bash -x ...:
+ $'r'
: command not foundsr/local/apache/htdocs/public/log.sh: line 2:
+ ServerRoot=$'/usr/local/apache/usr/local/apache/htdocs/publicr'
+ $'r'
: command not foundsr/local/apache/htdocs/public/log.sh: line 4:
++ date +%d.%m.%Y-%H:%M:%S
+ Aktuelles_Datum=$'02.04.2007-23:40:41r'
+ $'r'
: command not foundsr/local/apache/htdocs/public/log.sh: line 6:
/usr/local/apache/usr/local/apache/htdocs/public/log.sh: line 32: syntax error: unexpected end of file
Ja /bin/sh existiert und scheint auch zu funktionieren, habe die Shell zwischendurch ja gewechselt :)

EDIT:
gierig wrote: btw.
ich bin der csh nicht wirklich fitt, aber musten da nicht Variabel mit "set var=nnn" definiert werden ?
Ja existiert, ich bin da auch nicht fitt, habe auch erst vor wenigen Wochen mit Linux angefangen, aber die csh sieht so aus, wie ich sie nach der OS-Installation vorgefunden habe, also geh ich von aus, dass es diese auch war :)

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-02 23:45
by aquajo
Ich würde sagen da sind im Skript paar Zeilenumbrüche zuviel, also das Skript selber hat Probleme.

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-03 00:01
by hasch
Also ich habs jetzt mal mit einer einfachen echo Ausgabe versucht über bash datei.sh und das geht, also werd ich mir das shell-skript nochmal angucken danke, aber woran kann es liegen, dass shell-skripte beim aufruf nicht mehr "abgearbeitet" werden?

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-03 00:05
by aquajo
hasch wrote:Also ich habs jetzt mal mit einer einfachen echo Ausgabe versucht über bash datei.sh und das geht, also werd ich mir das shell-skript nochmal angucken danke, aber woran kann es liegen, dass shell-skripte beim aufruf nicht mehr "abgearbeitet" werden?
Schau dir einfach 'mal die bemängelten Zeilen an.

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-03 00:24
by hasch
Ja werde ich tun, aber das meinte ich nicht.
"Früher" konnte ich ein Shellskript per "script.sh" einfach aufrufen, warum muss ich nun "bash script.sh" aufrufen, kann Linux nicht die im Shellskript angegebene Shell nutzen (oder besser warum, hab ich da vllt. was verstellt?)?

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-03 09:07
by flo
Auf was zeigt denn die /bin/sh ?

Natürlich kann Linux die Shell aus dem Script nutzen, und das funktioniert in der Regel auch, aber wenn Du csh als Standardshell benutzen möchtest und Deinem Script sagst, er soll sh benutzen, obwohl Du bash meinst, ist da wohl nicht unbedingt Linux schuld.

Alternativ wg. evtl. Umbrüchen: file <dateiname>

flo.

Re: Shells lassen sich nicht mehr ausführen

Posted: 2007-04-12 02:41
by aldee

Code: Select all

dos2unix /usr/local/apache/usr/local/apache/htdocs/public/log.sh