Der Linux Problem/Fragen-Thread

  • Hallo Leute,

    ich habe folgenden "Code":

    Code
    EXIT=$0
    if [ $EXIT = 0 ]; then
     mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
    else
     mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
    fi

    rsync bricht mit dieser Meldung ab:

    Code
    rsync: link_stat "/mnt/LAN/Sicherung" failed: No such file or directory (2)
    rsync: mkdir "/home/tobias/Doku/Monatsbackups/Backup-12-2012" failed: No such file or directory (2)
    rsync error: error in file IO (code 11) at main.c(595) [Receiver=3.0.7]
    rsync: connection unexpectedly closed (9 bytes received so far) [sender]
    rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]


    Trotzdem wird immer der erste Fall gewählt.

    Was mache ich falsch? Bzw. Wie/Wo wird der Exit-Code von Rsync gespeichert?

    Meine Beiträge stehen unter der MIT-Lizenz :)


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (19. Dezember 2012 um 20:02)

  • $0 ist der nullte Parameter an dein Programm und enthält den Namen der Programmdatei bzw. deines Shellskripts. Was du willst, ist vermutlich $?, Rückgabewert des zuletzt ausgeführten Programms. Außerdem solltest du [ $EXIT -eq 0 ] (Zahlen-Vergleich) statt [ $EXIT = 0 ] (Zeichenketten-Vergleich) benutzen, dann wäre dir das schon ggf. von alleine aufgefallen. ;)

    Im Übrigen:

    Code
    DESTDIR=/mnt/LAN/Sicherung\ PC
    rsync foo $DESTDIR


    macht nicht was du denkst – das Leerzeichen wird zwar ordnungsgemäß in der Variablen gespeichert, aber diese wird trotzdem als zwei Parameter übergeben. Dateinamen sollte man möglichst immer in Anführungszeichen übergeben.


  • $0 ist der nullte Parameter an dein Programm und enthält den Namen der Programmdatei bzw. deines Shellskripts. Was du willst, ist vermutlich $?, Rückgabewert des zuletzt ausgeführten Programms. Außerdem solltest du [ $EXIT -eq 0 ] (Zahlen-Vergleich) statt [ $EXIT = 0 ] (Zeichenketten-Vergleich) benutzen, dann wäre dir das schon ggf. von alleine aufgefallen. ;)

    Im Übrigen:

    Code
    DESTDIR=/mnt/LAN/Sicherung\ PC
    rsync foo $DESTDIR


    macht nicht was du denkst – das Leerzeichen wird zwar ordnungsgemäß in der Variablen gespeichert, aber diese wird trotzdem als zwei Parameter übergeben. Dateinamen sollte man möglichst immer in Anführungszeichen übergeben.

    Merci

    Die Variable TARGETB funzt jetzt. Allerdings tut der "Fehlerlog" immernoch nicht.
    So siehts jetzt aus:

    Meine Beiträge stehen unter der MIT-Lizenz :)


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (19. Dezember 2012 um 21:25)

  • Hat jemand ne Idee wie ich auf nem Ubuntu Server mit Lighttpd ohne PHP so etwas wie eine Traffic-Grafik hinbekomme, welche per Webbrowser erreichbar ist?

    Meine Beiträge stehen unter der MIT-Lizenz :)


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Mit fastcgi kannst du php in Lighttpd einbinden. Solang du nicht irgendwelche unsicheren/unseriösen/schlecht programmierten Scripte draufpackst, ist die Standardconfig schon in Ordnung. Falls du der Standardconfig nicht traust, kannst du den safemode aktivieren. Aber wenn eh nur das vnstat Script drauf läuft, geht das schon in Ordnung so. Falls du Hilfe beim konfigurieren brauchst, schreib mich einfach mal im Jabber an.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!