Superuser

Autor Thema: script fehler wer kann mir helfen?  (Gelesen 6636 mal)

socs

  • Gast
script fehler wer kann mir helfen?
« am: 02. Juli 2007, 15:09:50 »
Halllo zusammen,

ich will mir ein patchscript erstellen...bekomme aber immer einen Fehler.
Ich möchte einige patche auf mein system updaten...habe aber nicht die lust dazu alle einzeln einzutippen.

Die Patche liegen im Verzeichnis /var/update/patch1.tgz usw.


script
#!bin/bash
for i in *.tgz; do tar xzf $i; rm -f $i; done
esxupdate -n -r file:/var/update/ESX-patch1 update
esxupdate -n -r file:/var/update/ESX-patch2 update
#ende

Das script hat den Namen update und liegt im Verzeichnis /var/update

nach aufruf des script mit ./update  bekomme ich immer den Fehler : bad interpreter: No such file or directory

Waran kann das denn liegen ??





sonnenblen.de - Das unabhängige Sun User Forum

script fehler wer kann mir helfen?
« am: 02. Juli 2007, 15:09:50 »

Offline signal_15

  • Sobl Master
  • ****
  • Beiträge: 426
    • Rechenzentrum Amper
Re: script fehler wer kann mir helfen?
« Antwort #1 am: 02. Juli 2007, 15:13:31 »
Hi,

versuch mal das script mit folgendem zu beginnen.
#!/bin/bash
Starting Off With a Sha-Bang
http://tldp.org/LDP/abs/html/sha-bang.html

ct,

socs

  • Gast
Re: script fehler wer kann mir helfen?
« Antwort #2 am: 02. Juli 2007, 15:15:15 »
oh hab mich verschrieben  habe natürlich im Script #!/bin/bash

Offline turrican

  • Sobl Bachelor
  • ***
  • Beiträge: 104
  • "In SPARC we trust"
Re: script fehler wer kann mir helfen?
« Antwort #3 am: 02. Juli 2007, 17:24:24 »
oh hab mich verschrieben  habe natürlich im Script #!/bin/bash

Bei mir (Solaris 9, SPARC) war die Bash nicht standardmäßig mitinstalliert (musste sie manuell nachinstallieren) und dann war sie in /usr/bin/bash anstatt in /bin/bash

Teste also mal, ob die Bash bei dir wirklich als /bin/bash vorhanden ist...
"Das ist nur Ihre Meinung!"

Offline DukeNuke2

  • Sobl Guru
  • *****
  • Beiträge: 571
  • Soulman
    • Wo die Sonne lacht
Re: script fehler wer kann mir helfen?
« Antwort #4 am: 02. Juli 2007, 18:14:39 »
oh hab mich verschrieben  habe natürlich im Script #!/bin/bash

Bei mir (Solaris 9, SPARC) war die Bash nicht standardmäßig mitinstalliert (musste sie manuell nachinstallieren) und dann war sie in /usr/bin/bash anstatt in /bin/bash

Teste also mal, ob die Bash bei dir wirklich als /bin/bash vorhanden ist...

root@******[/]#which bash
/usr/bin/bash

Hab das auf einem Solaris 10 Server eingegeben und afair war der Pfad unter 9 auch so.

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: script fehler wer kann mir helfen?
« Antwort #5 am: 02. Juli 2007, 19:07:55 »
Moin,

welche Solaris Version benutzt du denn?

Der Fehler sagt eindeutig, dass dein Script bereits beim Start von /bin/bash scheitert (warum ueberhaupt bash statt sh?). Schau mal nach ob es /bin/bash auf deinem System gibt und ob sich die starten laesst. Sollte das der Fall sein, so schau mal nach ob in der ersten Zeile bei dir wirklich nur ein #!/bin/bash steht (nicht das da am Ende noch ein CTRL-M oder aehnliches folgt...).

Selbst wenn du das in den Griff bekommen hast, so wird dein Script trotzdem nicht klappen weil zu "tar xzf" benutzt und Solaris tar keine z Option kennt (die gibt es nur beim GNU tar). Also entweder hier gtar (GNU tar) verwenden oder aus dem "tar xzf" zwei Befehle machen ("gzcat filename.tar.gz | tar xf -").
Als naechstes loescht du einfach die Einagbedateien ohne zu Wissen ob das Auspacken geklappt hat (und wie gerade erwaehnt wird das eh nicht klappen). Besser: den rm Befehl nur ausfuehren, wenn der tar geklappt hat...

#!/bin/sh
for i in *.tgz; do
    gzcat $i | tar xf - && rm -f $i
done
esxupdate -n -r file:/var/update/ESX-patch1 update
esxupdate -n -r file:/var/update/ESX-patch2 update

Tschau,
  Drusus.

Offline turrican

  • Sobl Bachelor
  • ***
  • Beiträge: 104
  • "In SPARC we trust"
Re: script fehler wer kann mir helfen?
« Antwort #6 am: 02. Juli 2007, 21:12:25 »
Hab das auf einem Solaris 10 Server eingegeben und afair war der Pfad unter 9 auch so.

Naja, aber beim Kollegen socs scheint es ja schon beim Aufrufen der Bash zu klemmen, denn schliesslich bekommt er ja den Fehler "bad interpreter: No such file or directory", deswegen wollte ich ihn mal testen lassen, obs bei ihm wirklich ne bash unter /bin gibt.

Stimme aber auch Drusus zu, könnte evtl. auch ein ^M oder so am Zeilenende sein - sind gemein, die Dinger (vor allem, wenn vi & Co. sie nicht anzeigen...)

Gruss,
Alex

"Das ist nur Ihre Meinung!"

Offline Sonnenbrand

  • Sobl Junior
  • **
  • Beiträge: 84
Re: script fehler wer kann mir helfen?
« Antwort #7 am: 03. Juli 2007, 10:47:34 »

Stimme aber auch Drusus zu, könnte evtl. auch ein ^M oder so am Zeilenende sein - sind gemein, die Dinger (vor allem, wenn vi & Co. sie nicht anzeigen...)

Der vi-Editor zeigt die ^M sehr wohl an.

Andreas

Offline signal_15

  • Sobl Master
  • ****
  • Beiträge: 426
    • Rechenzentrum Amper
Re: script fehler wer kann mir helfen?
« Antwort #8 am: 03. Juli 2007, 15:59:21 »
Hi,

als ich meine erste antwort los lies, wollte ich ebenfalls schon anmerken, dass die bash im /usr/bin verzeichnis liegt. ich habe dann nochmal bei mir auf zwei kisten nachgesehen. einmal sol10 und einmal sol9. und siehe da:
odin~$ which bash
/usr/bin/bash
odin~$ /bin/bash
odin~$ exit
exit
odin~$

das bringt mich zu der frage: wie bekomme ich raus ob /bin/bash nicht ein 'hardlink' ist?

ct,

Offline meik

  • Sobl Bachelor
  • ***
  • Beiträge: 187
Re: script fehler wer kann mir helfen?
« Antwort #9 am: 03. Juli 2007, 18:35:20 »
das bringt mich zu der frage: wie bekomme ich raus ob /bin/bash nicht ein 'hardlink' ist?

ls zeigt ja an, wieviele Links auf einen Inode existieren (dritte Spalte), mit der Option -i zeigt ls sogar noch die Nummer des Inodes an:

# ls -li /usr/bin/bash
     24896 -r-xr-xr-x   1 root     bin       578964 Mar  2  2002 /usr/bin/bash
# ls -li /bin/bash
     24896 -r-xr-xr-x   1 root     bin       578964 Mar  2  2002 /bin/bash
#

Also haben den gleichen Inode in /bin und /usr/bin, aber angeblich nur einen Verzeichniseintrag, der auf diesen Inode 24896 zeigt.

Na, wer kann diesen scheinbaren Widerspruch erklären? :-)

sonnenblen.de - Das unabhängige Sun User Forum

Re: script fehler wer kann mir helfen?
« Antwort #9 am: 03. Juli 2007, 18:35:20 »

Offline Sonnenbrand

  • Sobl Junior
  • **
  • Beiträge: 84
Re: script fehler wer kann mir helfen?
« Antwort #10 am: 04. Juli 2007, 09:51:21 »

Also haben den gleichen Inode in /bin und /usr/bin, aber angeblich nur einen Verzeichniseintrag, der auf diesen Inode 24896 zeigt.

Na, wer kann diesen scheinbaren Widerspruch erklären? :-)



Ich glaube du möchtest im Singleuser mal ein fsck auf deine Platte loslassen.


Andi

Offline turrican

  • Sobl Bachelor
  • ***
  • Beiträge: 104
  • "In SPARC we trust"
Re: script fehler wer kann mir helfen?
« Antwort #11 am: 04. Juli 2007, 10:39:21 »
Der vi-Editor zeigt die ^M sehr wohl an.
Andreas

Kann ich so nicht bestätigen...
Hatte ich (unter Sol9/Sparc) schon öfters, dass ich im vi
:%s/^M//g (wobei ^M == CRTL-V, CTRL-M ist) einmal ohne Fehlermeldung ausführen konnte, also müssten ja ^M Characters da gewesen sein, sehe ich das richtig?

"Das ist nur Ihre Meinung!"

Offline Sonnenbrand

  • Sobl Junior
  • **
  • Beiträge: 84
Re: script fehler wer kann mir helfen?
« Antwort #12 am: 04. Juli 2007, 10:45:16 »
Dann mach mal folgendes:

echo "huhu" | unis2dos > /tmp/xxx ; vi /tmp/xxx


Hier, Sol9/SPARC, sehe ich dann sehr wohl das ^M im vi Editor.

Geg. spielt das Terminal noch eine Rolle. Ich benutze dtterm unter CDE.


Andi

Offline turrican

  • Sobl Bachelor
  • ***
  • Beiträge: 104
  • "In SPARC we trust"
Re: script fehler wer kann mir helfen?
« Antwort #13 am: 04. Juli 2007, 14:37:20 »
Dann mach mal folgendes:
echo "huhu" | unis2dos > /tmp/xxx ; vi /tmp/xxx
Hier, Sol9/SPARC, sehe ich dann sehr wohl das ^M im vi Editor.
Geg. spielt das Terminal noch eine Rolle. Ich benutze dtterm unter CDE.

Igitt, nen grafischen Desktop auf ner Sun??
Headless rult
(jaja, ich weiss, da kann man dann trotzdem mit xdmcp usw. remote einloggen etc, war auch nur ein Joke  ;))

Ich wollte das mit dem ^M halt nur mal dem Kollegen socs sagen, er war/ist vermutlich um jede Hilfe froh (wär ich zumindest in seiner Situation)...

Gruss,
Alex
"Das ist nur Ihre Meinung!"

Offline meik

  • Sobl Bachelor
  • ***
  • Beiträge: 187
Re: script fehler wer kann mir helfen?
« Antwort #14 am: 04. Juli 2007, 19:55:45 »

Also haben den gleichen Inode in /bin und /usr/bin, aber angeblich nur einen Verzeichniseintrag, der auf diesen Inode 24896 zeigt.

Na, wer kann diesen scheinbaren Widerspruch erklären? :-)


Ich glaube du möchtest im Singleuser mal ein fsck auf deine Platte loslassen.

Andi

Entweder muss ich meinen Ironiedetektor neu justieren oder du möchtest mal folgenden Befehl absetzen:

ls -l /bin
Das sollte dir klar machen, warum diese scheinbare Unmöglichkeit auf jedem Solaris-System existiert und warum man deswegen keinen fsck machen muss.

:-)