Anzeige:
Ergebnis 1 bis 10 von 10

Thema: shell - Anfängerfrage

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20

    shell - Anfängerfrage

    Hi,

    ich quäle mich jetzt schon stundenlang mit einem kleinen shellscript herum, welches mir automatisch einen Datenbankdump erstellen soll. Führe ich es direkt aus der shell heraus aus, klappt es, führe ich es über crontab aus, klappt es nicht!

    mydump sieht so aus:

    #! /bin/sh
    /opt/oracle/product/oracle/bin/exp user-xy/passwort-xy@mydb parfile=/etc/exportall
    exit 0

    Also das binary exp wird mit zwei Parametern aufgerufen.

    ./mydump funktioniert auch einwandfrei.


    Rufe ich mydump über crontab auf, tut sich NICHTS!
    */5 * * * * /etc/myscrpts/mydump

    Crontab wird korrekt alle 5 Minuten ausgeführt. Habe ich überprüft.
    Kann mir jemand erklären, wieso das Script überhaupt nicht ausgeführt wird? Keine Meldung auf dem Bildschirm und keine Fehlermeldung in /var/log/messages. Einfach nix.

    Danke für Tipps
    rfi

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    Das soll nicht etwa "/etc/myscripts/mydump" heissen?

    Mach halt einfach mal einen

    echo $(date): hallo >>/tmp/bla.log

    in dein Script rein um zu sehen ob es ausgeführt wird

  3. #3
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20

    script

    Hi fork,

    ja richtig. Ein Schreibfehler, der aber nichts mit dem Script selbst zu tun hat. Das Script wird ausgeführt. Aber die Befehlszeile nicht.

    Grüße
    rfi

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Könnte auch ein Schreibfehler sein, aber zwischen ! und / scheint ein Leerzeichen zu sein

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20

    script

    Stimmt! Aber das macht nichts aus. Script wird in beiden Fällen ausgeführt oder auch nicht ausgeführt.

    Grüße
    rfi

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20

    habs raus

    Ich kenne jetzt die Ursache. Das binary exp ist abhängig von einigen Umgebunsvariablen, die die login-shell kennt. Schreibe ich diese Umgebungsvariablen (incl. export) in das Script, so klappt alles.

    Nun die entscheidende Frage: Warum kennt eigentlich die shell eines root-cronjobs die Umgebungsvariablen seiner Eltern nicht. Ich dachte, die aufgerufene shell erbt die Variablen der aufrufenden shell. Oder startet cron irgendwie "neutral"?

    Oder liege ich völlig falsch?
    rfi

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    Ich weiss das leider nicht aber das kann sein das es keine loginshell ist, steht bestimmt in der man-page von cron. Du kannst aber die Initialisierungsdateien auch sourcen. Das heist du führst diese mit dem Punktkommando aus:

    Code:
    . /etc/profile
    . $HOME/.profile
    
    # Programmstart
    ...
    ...

  8. #8
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20

    script

    Hi fork,

    ..ähm das raff ich nicht so ganz, wie du das meinst. Kannst du mir das "sourcen" an einem Beispiel kurz klar machen?

    Danke
    rfi

  9. #9
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Er hat doch schon ein Beispiel angegeben

    Du schreibst Punkt Leerzeichen Scriptname

    zb

    Code:
    . /etc/profile
    Dann wird das angegeben Script in das aktuelle eingelesen, die darin enthaltenen Definitionen sind dann auch im aktuellen Script sichtbar.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  10. #10
    Registrierter Benutzer
    Registriert seit
    29.06.2000
    Ort
    Haibach
    Beiträge
    20
    Hi fork und anda_skoa,

    Der Tipp mit dem "sourcen" hat gepasst! Funktioniert sehr gut

    Danke
    rfi

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •