Returncode von aufgerufenem Programm abfragen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von fencingline, 24.02.2008.

  1. #1 fencingline, 24.02.2008
    Zuletzt bearbeitet: 24.02.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Hallo zusammen,

    ich möchte irgendwie so etwas machen:

    Code:
    RET="mysqldump -uroot -pPasswort -hlocalhost --all-databases > backup.sql"
    
    if $RET=0
    {
    echo "Backup war erfolgreich"
    }
    else
    {
    echo "Backup war nicht erfolgreich"
    }
    Aber so einfach geht das nicht. Geht das überhaupt?

    Hintergrund:
    Ich habe neulich das MySQL-Passwort geändert und es erst sehr spät bemerkt, so dass ich keine Backups mehr hatte ...

    VG

    FCL
     
  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. #2 Gott_in_schwarz, 24.02.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    so wie du das gemacht hast, gehts nicht.
    einfach den befehl ausführen und dann
    Code:
    return_code="$?"
    machen.
    in $? steckt immer der return code des zuletzt ausgeführten programmes.

    btw: wenn du den returncode nur bei einer einzigen if-abfrage brauchst, brauchst du ihn natürlich nicht in einer extra variable abzuspeichern...
     
  4. Shorti

    Shorti Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    271
    Zustimmungen:
    0
    Was kommt denn wenn man es ausfuehrt?

    Muss das nicht
    Code:
    mysqldump -u root -p Passwort -h localhost --all-databases > backup.sql
    heissen?
     
  5. #4 fencingline, 24.02.2008
    Zuletzt bearbeitet: 24.02.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    @Gott_in_schwarz:
    Vielen Dank, das ist es! Bei falschem Passwort kommt Return-Code 2. Wenn alles gut geht, Return-Code 0. Ich kann quasi bei Return-Code != 0 einen Fehler melden. Danke dir! :-)

    @Shorti:
    Das mysqldump Script läuft so schon seit Monaten/Jahren. Es dürfen keine Blanks dazwischen sein.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Hallo Leute,

    ich krieg nen Wolf ...

    Warum funktioniert das nicht?

    Code:
    mysqldump -uroot -pfalschesPasswort -hlocalhost --all-databases > db_backup.sql
    
    if $? != 0
    {
      echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] : Beim Backup der Datenbanken ist ein Fehler aufgetreten, das Script wird abgebrochen."
     # exit
    }
    Nicht? Ich bekomme immer folgenden Fehler:
    Code:
    syntax error: unexpected end of file
    Ratlos ...
     
  6. #5 Gott_in_schwarz, 24.02.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    was verstehst du denn an "syntax error" nicht?

    so wie dein beispielcode aussieht hast du noch nie in deinem leben die syntax von if-abfragen in der bash nachgeschlagen und wunderst dich nun, dass es nicht funktioniert...

    hier die antwort auf dein problem:
    lösung
     
  7. #6 Wolfgang, 24.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Wenn du die Syntax für If gelesen hast (solltest du unbedingt tun), dann kannst du es auch mal mit der Kurzform versuchen.

    Code:
    mysqldump -u root -p Passwort -h localhost --all-databases > backup.sql || echo "Error on SQLdump";
    
    ;)
    Wolfgang
     
  8. #7 fencingline, 24.02.2008
    Zuletzt bearbeitet: 24.02.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Sorry für mein Nichtwissen Gott_in_schwarz und Wolfgang. Ich hatte die C-Syntax genommen, natürlich kann die unter Bash nicht funktionieren. :(

    Ich habe mich so weit eingelesen und nun schon den nächsten Fehler:
    Code:
    if [$? -ne 0]
    then
      echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] : Beim Backup der Datenbanken ist ein Fehler aufgetreten, das Script wird abgebrochen."
     # exit
    fi
    [2: command not found
     
  9. Anzeige

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

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Code:
    if [ $? -ne 0 ]
    then
    ...
    fi
    
    Siehst du den Unterschied?

    Wolfgang
     
  11. #9 fencingline, 24.02.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Blank zw. [ und $? sowie zw. 0 und ]

    Oh Mann ...

    ich teste ...
     
Thema: Returncode von aufgerufenem Programm abfragen
Besucher kamen mit folgenden Suchen
  1. shell script returncode abfragen

    ,
  2. linux return code abfragen

    ,
  3. bash errorlevel auswerten

    ,
  4. returncode auslesen,
  5. unix returnwert abfragen
Die Seite wird geladen...

Returncode von aufgerufenem Programm abfragen - Ähnliche Themen

  1. ssh unter nohup liefert returncode 255

    ssh unter nohup liefert returncode 255: Hallo Gemeinde, ich habe ein ziemlich verzwicktes Problem, dass ich - auch mit schon einigem Support - nicht gelöst bekomme. In meinem Shell...
  2. Returncode eines Antjobs auswerten

    Returncode eines Antjobs auswerten: Hallo zusammen, ich bin neu hier und habe noch nicht so viel Erfahrung bei der Shell Script Programmierung. Nun habe ich folgendes Problem....
  3. If abfrage - welcher returncode ?

    If abfrage - welcher returncode ?: Hallo, ich bin totaler Neuling, aber es ist wichtig. In der Console gebe ich folgenden Befehl ein. srvgsx:~ # vmware-cmd...
  4. returncode 127

    returncode 127: hallo zusammen ich habe ein script gemacht welches den uvscan (on demande anti virus scanner) von mcafee mit einigen optionen anwirft, danach...