Shells lassen sich nicht mehr ausführen

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
hasch
Posts: 99
Joined: 2007-03-09 15:23
 

Shells lassen sich nicht mehr ausführen

Post 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?
aquajo
Posts: 145
Joined: 2003-02-25 21:07
 

Re: Shells lassen sich nicht mehr ausführen

Post 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
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: Shells lassen sich nicht mehr ausführen

Post by flo »

gibt es /bin/sh?
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Shells lassen sich nicht mehr ausführen

Post 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 ?
hasch
Posts: 99
Joined: 2007-03-09 15:23
 

Re: Shells lassen sich nicht mehr ausführen

Post 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 :)
Last edited by hasch on 2007-04-02 23:46, edited 1 time in total.
aquajo
Posts: 145
Joined: 2003-02-25 21:07
 

Re: Shells lassen sich nicht mehr ausführen

Post by aquajo »

Ich würde sagen da sind im Skript paar Zeilenumbrüche zuviel, also das Skript selber hat Probleme.
hasch
Posts: 99
Joined: 2007-03-09 15:23
 

Re: Shells lassen sich nicht mehr ausführen

Post 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?
aquajo
Posts: 145
Joined: 2003-02-25 21:07
 

Re: Shells lassen sich nicht mehr ausführen

Post 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.
hasch
Posts: 99
Joined: 2007-03-09 15:23
 

Re: Shells lassen sich nicht mehr ausführen

Post 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?)?
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: Shells lassen sich nicht mehr ausführen

Post 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.
aldee
Posts: 93
Joined: 2002-10-03 16:45
 

Re: Shells lassen sich nicht mehr ausführen

Post by aldee »

Code: Select all

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