Zippen aus der Bash heraus

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von worker, 30.01.2009.

  1. worker

    worker König

    Dabei seit:
    29.03.2007
    Beiträge:
    848
    Zustimmungen:
    0
    Moin,

    Aufgabe ist es Mehrere Log-Dateien vom aktuellen Datum, aber unterschiedlichen Uhrzeiten (Format: Logfile-30_01_2009-10:05_Uhr.log) in ein Zip-File (Format: Logfiles-30_01_2009.zip) zu packen.

    Folgende Zeile funktioniert direkt aus der Bash heraus perfekt: /usr/bin/zip -m -5 ./Logfiles.zip ./Logfile-30_01_2009*.log

    Dagegen in einem Bash-Script nicht (ausgeführt im gleichen Verzeichnis, wie die Logfiles):
    Code:
    # Variablen als Datei-Parameter an Zip:
    DATUM=`date +%d_%m_%y`
    LOG_DATEIEN_FUER_ZIP="`dirname $0`/Logfile-$DATUM*.log"
    ZIP_DATEI="`dirname $0`/Logfiles-$DATUM.zip"
    # -----
    
    # Debugging: Haben die Variablen event. einen Zeilenumbruch odg. ?
    echo "ZD : [$ZIP_DATEI]"
    echo "L4Z: [$LOG_DATEIEN_FUER_ZIP]"
    # -----
    
    /usr/bin/zip -m -5 "$ZIP_DATEI" "$LOG_DATEIEN_FUER_ZIP"
    
    Google brachte mich keinen Schritt weiter.

    Also meine Frage wäre dann: "Where's the problem, officer ?"

    Thx
    W.
     
  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 floyd62, 30.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi,

    erst mal, welche Fehlermeldungen bekommst du? "Geht nicht" ist wenig aussagekräftig, ich würde auf den ersten Blick etwas wie "zip: ... *.log - no such file or directory" erwarten. Aufgrund der Quotes in der letzten Zeilt nehme ich an, dass die Shell keine Chance hat, den "*" zu expandieren. Ein Versuch wäre also, statt
    Code:
    /usr/bin/zip -m -5 "$ZIP_DATEI" "$LOG_DATEIEN_FUER_ZIP"
    
    einfach mal
    Code:
    /usr/bin/zip -m -5 "$ZIP_DATEI" $LOG_DATEIEN_FUER_ZIP
    
    zu schreiben ...

    Gruss
     
  4. worker

    worker König

    Dabei seit:
    29.03.2007
    Beiträge:
    848
    Zustimmungen:
    0
    Hi,

    Oh mannn(!!!) ... ja, klar. Sorry...
    Haste aber absolut recht:
    Und hiermit hast Du auch Recht:
    (Habs auch bei beiden Variablen mit und ohne Anführungsstriche versucht, aber dann halt beides zugleich - was auch nicht funktionierte.)

    Vielen Dank !! ;-) ... auch für die Erklärung.

    Gruß
    W.
     
  5. #4 floyd62, 30.01.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Na, bin ja froh, wennn ich ein bisschen helfen konnte ... kenne das Problem wohl auch schon aus eigener Erfahrung :)

    Ich habe mir da dann einfach angewöhnt, den "*" erst im Kommando direkt reinzubasteln, statt ihn vorher in irgendwelche Variablen zu packen. In deinem Beispiel hätte ich also wahrscheinlich so etwas wie
    Code:
    DATUM=`date +%d_%m_%y`
    (
    cd `dirname "$0"`
    zip -m 5 Logfiles-$DATUM.zip Logfiles-$DATUM*.log
    )
    
    geschrieben.

    ... ausser natürlich ich verwende die Dateinamen (oder irgendwelche anderen Variablen) später in meinem Skript noch weiter ...

    Gruesse
     
  6. worker

    worker König

    Dabei seit:
    29.03.2007
    Beiträge:
    848
    Zustimmungen:
    0
    Yepp, das werde ich wohl auch tun ;-)

    Da sucht man sich echt den Allerwertesten nach solch einem "Fehler" ab ... :D

    Thx nochmal
    W.
     
Thema:

Zippen aus der Bash heraus

Die Seite wird geladen...

Zippen aus der Bash heraus - Ähnliche Themen

  1. Dateien in einem Ordner zippen -> name not matched?

    Dateien in einem Ordner zippen -> name not matched?: Hi, ich hab ein Problem und zwar wenn ich diesen Codeabschnitt ausführe: cd DIR1 zip -r -T -m DIR1.zip ./*er soll da einfach alle Dateien +...
  2. Jeden Ordner extra zippen.

    Jeden Ordner extra zippen.: Hallo Leute! Ich hab mich letztens wieder einmal an einem Shell Script versucht. Ich wollte einen Ordner wegkopieren, danach in den eben...
  3. zippen mit Passwort im Script

    zippen mit Passwort im Script: Hallo zusammen, unter AIX habe ich Zip v2.3 und würde gerne Dateien zippen und das Archiv mit Passwort schützen, das ganze im Shellscript....
  4. ... mit Passwort verzippen?

    ... mit Passwort verzippen?: Ich suche eine Möglichkeit Dateien (OpenOffice oder pdf) mit einem Passwort zu versehen und damit in einfacher (und sicher eher unsicherer Weise)...
  5. Firewall Log bei bestimmter Größe zippen und neu anfangen!

    Firewall Log bei bestimmter Größe zippen und neu anfangen!: Also folgendes liegt vor: Unsere Sonicwall hier loggt ihren gesamten Traffic. Im moment läuft das script so, dass am Ende jeden Monats das Logfile...