[Solaris] Skript -> Variable setzen -> Crontab

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von -eraz-, 12.01.2009.

  1. -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    Hallo Leute,

    ich muss mich leider gerade etwas mit unserm sturen Solaris Server ärgern. Hauptsächlich habe ich es eigentlich mit RedHat zu tun, deshalb bin ich mit den Eigenheiten von Solaris nicht wirklich vertraut.
    Ich habe ein Skript in dem ich mehrere Variablen setzen muss und dieses wird dann per Crontab ausgeführt. Nur leider scheine ich hier nicht den richtigen Befehl zu finden. Entweder sagt er mir das die Syntax falsch ist oder er macht es einfach nicht. Das Skript sollte manuell und per Crontab funktionieren, folgendes habe ich bereits versucht:

    Code:
    VARIABLE="wert"
    oder
    Code:
    set VARIABLE="Wert"
    oder
    Code:
    setenv VARIABLE = "Wert"
    keiner dieser genannten funktioniert richtig. :(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    Variante 1 funktioniert hier problemlos. An der Shell und in Cron.

    Fehlt evtl. ein export?
     
  4. -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    funktioniert aber nicht in einer C Shell oder?
    Soweit funktioniert zwar die erste Variante mit root manuell und mit Crontab, aber dann nicht mit einem User der mit einer C Shell arbeitet. (root arbeitet mit der Korn Shell).
     
  5. #4 floyd62, 12.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Soweit ich mich erinnere, verwendet cron unter Solaris standardmässig die Bourne Shell (SHELL=/bin/sh). Damit sollte also die erste Variante laufen.

    Um sicherzustellen, dass auch ein C-Shell-Benutzer so ein Skript ohne Umstände aufrufen kann, müsstest du als erste Zeile ein
    Code:
    #!/bin/sh
    
    einfügen. Diese Zeile ("Shebang") teilt allen einigermassen vernünftigen Shells mit, welches Programm zur Ausführung des Skripts verwendet werden soll.

    Gruss
     
  6. #5 bitmuncher, 12.01.2009
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Code:
    bit@unknown:~$ ls -lh /bin/sh
    lrwxrwxrwx 1 root root 13 2008-11-26 00:45 /bin/sh -> ../../sbin/sh
    bit@unknown:~$ ls -lh /sbin/sh 
    lrwxrwxrwx 1 root root 20 2008-11-26 00:41 /sbin/sh -> ../usr/bin/i86/ksh93
    bit@unknown:~$ ksh93 --version
      version         sh (AT&T Research) 1993-12-28 s+
    
    Ich würde mich ja nicht auf den Softlink /bin/sh verlassen, sondern die gewünschte Shell direkt via Shebang aufrufen, als #!/bin/bash für die Bash, #!/bin/csh für die C-Shell und #!/bin/ksh für die Korn-Shell.
     
  7. #6 floyd62, 12.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    @bitmuncher:

    guter Einwand, im Prinzip einverstanden.

    Wenn man in einer Umgebung mit diversen UNIX-Varianten unterwegs ist, ist es aber doch irgendwie schön, wenn man sich auf ein paar Standards verlassen kann. Und die "/bin/sh" ist halt normalerweise (ein Link auf) eine Bourne Shell - oder was auch immer auf der aktuellen Plattform der Bourne Shell am nächsten kommt (also bash auf Linux).

    Deshalb wäre mir etwas unwohl bei deinem Setup, wo offensichtlich die /sbin/sh durch eine Korn Shell ersetzt worden ist. Bei mir (dürfte eine "normale" Solaris 10 sein) sieht das so aus:

    Code:
    # uname -a
    SunOS dumbo 5.10 Generic_137137-09 sun4v sparc SUNW,SPARC-Enterprise-T5120
    # ls -l /bin/sh
    lrwxrwxrwx   1 root     root          13 Nov 13 12:46 /bin/sh -> ../../sbin/sh
    # ls -l /sbin/sh
    -r-xr-xr-x   1 root     root       95468 May 22  2008 /sbin/sh
    # file /sbin/sh
    /sbin/sh:       ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
    # grep /sbin/sh /var/sadm/install/contents
    ...
    /sbin/sh f none 0555 root root 95468 59398 1211409282 SUNWcsr
    ...
    # pkginfo -x SUNWcsr
    SUNWcsr  Core Solaris, (Root)
             (sparc) 11.10.0,REV=2005.01.21.15.53
    #
    
    Aber solange alles läuft ... alles 8) ...
     
  8. #7 bitmuncher, 12.01.2009
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Ist die Standard-Shell von OpenSolaris (x86). Hab da nicht's geändert, wobei auch mit der Bash alles einwandfrei funktionieren soll. Ich nutze in meinen Skripten jedenfalls immer den direkten Aufruf des Interpreters. Bisher hat sich das bewährt. So ist man unabhängig davon, welche Shell im System benutzt wird. Die gewünschte muss nur installiert sein.
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 floyd62, 12.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Na, dann hab ich was dazugelernt ... hatte hier gerade keine Intel-Solaris-Maschine greifbar, alles Sparc. Merci für den Update!
     
  11. #9 Gott_in_schwarz, 12.01.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Ist man doch mit "#!/bin/sh" auch, sogar noch unabhängiger: es muss nur irgendeine bourne-shell kompatible shell im System installiert sein. Das dürfte häufiger der Fall sein als eine explizite bash oder korn shell.
     
Thema:

[Solaris] Skript -> Variable setzen -> Crontab

Die Seite wird geladen...

[Solaris] Skript -> Variable setzen -> Crontab - Ähnliche Themen

  1. [Solaris] Mysql deinstallieren

    [Solaris] Mysql deinstallieren: Hallo, Ich habe hier einen Rechner auf dem mehrere verschiedene Mysql-Versionen installiert sind. Als Betriebssystem ist Solaris 2.6 im Einsatz....
  2. Shell Skript beschleunigen

    Shell Skript beschleunigen: Hallo zusammen, ich bin neu hier und hab gerade angefangen mich an Schell Skripte zu wagen. Nun hab eine Frage ich hab ein Skript geschrieben und...
  3. Kontextmenü mit einem Skript verbinden

    Kontextmenü mit einem Skript verbinden: Abend, wenn ich z. B. eine simple Umwandlung eines Bildformates in ein anderes über das KDE-Kontextmenü (Servicemenü nennt es sich im KDE oder...
  4. [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

    [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen: Hallo, ich hoffe ihr könnt mir helfen. Ich entwerfe im Moment ein Skript, welches den Callmonitor (Telnet) auf meiner FritzBox abfragt und wenn...
  5. Kunden-Skript ausgelöst durch Linux-Cluster Pacemaker

    Kunden-Skript ausgelöst durch Linux-Cluster Pacemaker: Hallo! Ich komme aus der AIX-Welt wo es im HACMP-Cluster die Möglichkeit der Ausführung eines Start- bzw. Stop-Skriptes im Zuge einer...