Backup-Skript (aus c't 7/2006)

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von o.tacke, 14.01.2009.

  1. #1 o.tacke, 14.01.2009
    o.tacke

    o.tacke Grünschnabel

    Dabei seit:
    10.11.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Ich habe ein Problem mit einem Skript aus der c't, das mysql-Datenbanken sichern soll und im Rahmen eines (dirvish-)cronjobs läuft. Das Problem ist wahrscheinlich trivial, aber ich habe bisher keine Lösung gefunden.

    Wesentlich sind die folgenden Zeilen:

    Code:
    $BACKUP_DIR={$1:-/backup/db-backups}
    DATE='date "+%Y%m%d"'
    
    for i in /var/lib/mysql/*/; do
      dbname = 'basename "$i"'
      mysqldump --user=root "$dbname" | gzip > $BACKUP_DIR/$dbname.$DATE.gz
    done
    
    Statt alle Datenbanken separat zu sichern, erhalte ich ein Archiv als basename "$i".date "+%Y%m%d".gz. Ich habe schon diverse Kombinationen bei den Anführungszeichen ausprobiert, aber leider ohne Erfolg. :(
     
  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 tuxlover, 14.01.2009
    Zuletzt bearbeitet: 14.01.2009
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    wie rufst du denn das Script auf? So wie ich das sehe muss es mit Scriptname /Verzeichnis/des/Backups aufgerfuen werden. Die Variable $1 also der erste Paramter in deinem Script wird ja nicht neu zugewiesen, wenn das Script diesen nicht übergeben bekommt.

    Ein wenig komisch programmiert ist das, finde ich. Man könnte den User mit einer einfachen If-Anweisung darauf hinweisen, dass der Parameter nicht übergeben wurde. Zum Beispiel mit:

    Code:
    if [ -z $1 ]
    then
    echo "Script needs an argument"
    exit 1
    fi
    
    Man könnte; und ich würde das machen; noch weitere If-Abfragen einbauen, die prüfen ob ein angegebenes verzeichnis überhaupt existiert usw.

    Bleibt noch zu sagen, wer Scripte ausführt ohne sie vollständig zu verstehen bzw. einfach nur alles abpinselt ohne nachzudenken, darf sich nicht wundern wenn mal das System nen abgang macht.
     
  4. #3 floyd62, 14.01.2009
    Zuletzt bearbeitet: 14.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Denke, du hast in der Zeile
    Code:
    dbname = 'basename "$i"'
    
    einfach - abgesehen von den überflüssigen Spaces - die falschen Ticks erwischt; versuch doch mal stattdessen
    Code:
    dbname=`basename "$i"`
    
    Dasselbe (backticks ` statt einfacher ticks ') muss auch in der Zeile DATE=... passieren ...

    ... und gleich in der ersten Zeile stimmt auch was nicht:
    Code:
    $BACKUP_DIR={$1:-/backup/db-backups}
    
    sollte wohl
    Code:
    BACKUP_DIR=${1:-/backup/db-backups}
    
    heissen ...

    Gruss
     
  5. #4 o.tacke, 14.01.2009
    o.tacke

    o.tacke Grünschnabel

    Dabei seit:
    10.11.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Problem gelöst

    Das Skript wird per cron ausgeführt.
    {$1 war ein Tippfehler von mir hier, im Skript steht das korrekt als $1{.

    Es lag tatsächlich nur an den Ticks! Mit ` klappt es nun einwandfrei. Wirklich eine fiese Falle...

    Vielen Dank!
     
  6. #5 Gott_in_schwarz, 14.01.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Hattest du das per Hand abgetippt, oder wie?
     
  7. #6 o.tacke, 14.01.2009
    o.tacke

    o.tacke Grünschnabel

    Dabei seit:
    10.11.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Ja, weil ich den Linux-Rechner nicht in Reichweite habe, wo das Skript drauf läuft, dafür aber den Artikel aus der c't.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Backup-Skript (aus c't 7/2006)

Die Seite wird geladen...

Backup-Skript (aus c't 7/2006) - Ähnliche Themen

  1. LinuxDistribution: Deepin 15.2 (aus China)

    LinuxDistribution: Deepin 15.2 (aus China): Habe mal nachgesehen was Manjaro so macht und bin dann auf Deepin gestoßen. Dazu habe ich hier erst einen Beitrag gesehen (automatischer...
  2. Serverumzüge (aus 3 mach 1)

    Serverumzüge (aus 3 mach 1): Hallo Gemeinde, ich habe aktuell 3 verteilte Server in einer Netzwerktopologie, 1. einen ProLiant G3, 3Ghz mit 2x SATA2 Anschlüssen, 2GB RAM...
  3. Wer kennt Indisoft (Ausbildungsträger in Berlin)???

    Wer kennt Indisoft (Ausbildungsträger in Berlin)???: Hallo alle zusammen, mal ne Frage an die Ausgebildeten Informatiker. ich hab vor eine Umschulung zum Fachinformatiker zu machen, warscheinlich...
  4. GKrellKam zeigt keine Bilder (aus dem Netz) an

    GKrellKam zeigt keine Bilder (aus dem Netz) an: Hi, nachdem ich trotz Herrn Google und der Boardsuche nicht weiter gekommen bin hoffe ich, dass mir hier jemand helfen kann. Ich habe das...
  5. echo/printf Formatierung (Ausrichtung)

    echo/printf Formatierung (Ausrichtung): Hallo, kann man echo bzw. printf dazu bringen, Text rechtsbündig auszugeben? Oder muss man da awk bemühen? Wie macht man das?