[bash] Verzeichnisse rekursiv durchlaufren?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von sourceCode, 22.08.2008.

  1. #1 sourceCode, 22.08.2008
    sourceCode

    sourceCode OMGWTFBBQ

    Dabei seit:
    19.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo zusammen,
    ich versuche mir zur Zeit mit ein paar (Bash)Scripts einen *sicheren* Backupscript zu schreiben. Dazu müsste ich ein Verzeichniss (vorzugsweise mein home-dir ;)) rekursiv durchlaufen, mit openSSL ein bisschen rum-verschlüsseln, alles in /tmp/ kopieren und dann per rsync über SSH auf den Server kopieren.
    Mir ist eigentlich fast alles klar, "Spielereien" wie .dateien nicht mithochladen lassen sich sicher ergooglen, aber ich zum Thema Verzeichnis rekursiv durchlaufen finde ich einfach garnichts.
    Die Fuktion tree fällt leider weg.

    Grüße, sourceCode
     
  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 supersucker, 22.08.2008
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Mir ist bei deiner beschriebenen Anforderung nicht klar, warum du Verzeichnisse rekursiv durchlaufen willst?

    Und warum so

    kompliziert?

    rsync nehmen und fertig ist die Laube, da musst du nix selber rekursiv durchlaufen.
     
  4. #3 sourceCode, 22.08.2008
    sourceCode

    sourceCode OMGWTFBBQ

    Dabei seit:
    19.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Darum gehts mir aber nicht. :p
    Ich will erst alles mit openSSL verschlüsseln, so das es dann verschlüsselt am Server liegt.
    Grüße
     
  5. #4 Wolfgang, 22.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Und warum nutzt du nicht find?

    Dass du dazu nix gefunden hast, scheint mir unglaublich.

    Gruß Wolfgang
     
  6. #5 saeckereier, 22.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    ^^^ Was Wolfgang sagt. Es gibt hier im Wochentakt Threads die sich mit find -exec und ähnlichem befassen. Die Beispiele anzupassen sollte recht leicht sein. Im letzten Thread haben sowohl Wolfi (sorry ;-) ) als auch ich gepostet. Die Manpage und google sollten dafür problemos ausreichen.
     
  7. #6 Gott_in_schwarz, 23.08.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    \o/
    Allerdings gehört das zusammengeschrieben, sonst verliert das doch seine ganze LOLCAPSLOCKKTHXBAI-Wirkung.

    (Für dieses Offtopic post nehme ich gerne Verwarnungen entgegen :* )
     
  8. #7 saeckereier, 23.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Häh??
     
  9. #8 sourceCode, 25.08.2008
    Zuletzt bearbeitet: 25.08.2008
    sourceCode

    sourceCode OMGWTFBBQ

    Dabei seit:
    19.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    N'abend,

    auch wenn das jetzt nicht ganz zum Thread Title passt hoffe ich trotzdem das mir jemand vlt einen Tipp gebe kann was ich da jetzt schon wieder falsch machen :O

    Code:
    algo="aes-256-ecb"
    
    echo -n "Enter the Password for your files: " 
    stty -echo   
    read passwd
    
    sudo find ~/test/ -exec openssl enc -$algo -e -v -out /anderes/dir/$2.enc -pass pass:$passwd  \;
    Nur leider passiert da jetzt garnichts. Script läuft und hört nie mehr auf, zieht allerdings auch kein CPU.

    $2 sollte eigentlich der Filename sein, damit das verschlüsselte File dann in /anderes/dir mit einem .enc hinten landet - aber ich weiß nicht wie ich den aktuellen Filename (=> der, der gerade verschlüsselt wird) bekomme um die Datei anschließend unter dem richtigen Namen wieder zu speichern.

    @Gott_in_schwarz: Fixed.

    Grüße
     
  10. Anzeige

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

    antsan Grünschnabel

    Dabei seit:
    12.07.2009
    Beiträge:
    1
    Zustimmungen:
    0
    Nur Unsinn auf eine konkrete Frage...
    Wenn ich mich nicht irre wollte er rekursiv und nicht find...
    Problem: Funktion erhält bei Aufruf keinen neuen Speicher...
    Lösung: Subshell Nachteil frisst Speicher ohne Ende (und langsam)
    oder:
    Eigene Variablen im Array (Rücksprungadressen sichern) -> nur quasi rekursiv:

    Gruß Uli

    BSP:

    #!/bin/bash

    declare -i ZAEHLER=0
    declare -i ERLEDIGT=0

    function DirScan
    {
    # hier koennte ein auszufuehrende Code stehen....

    VERZEICHNISSE=` ls -ld * | awk '{ if( $1 ~/^drwx/ )
    { print $9 }
    }'`

    # Die Unterverzeichnisse in ein Array
    for YYY in ${VERZEICHNISSE}
    do
    VERZEICHNIS[ZAEHLER]=`pwd`/${YYY} # der volle Pfad! sonst klapps beim
    # Verzeichniswechsel nicht...
    echo "Pfad ${ZAEHLER}: ${VERZEICHNIS[ZAEHLER]}" # zur Info...
    ZAEHLER=${ZAEHLER}+1
    done
    }

    function DoScan
    {
    DirScan

    while [ ${ERLEDIGT} -lt ${ZAEHLER} ]
    do
    cd ${VERZEICHNIS[ERLEDIGT]}
    ERLEDIGT=${ERLEDIGT}+1

    echo "Verz: `pwd`"

    echo "******* Erledigt: ${ERLEDIGT} von ${ZAEHLER}"
    DoScan
    done
    }

    DoScan
     
  12. #10 bytepool, 12.07.2009
    Zuletzt bearbeitet: 12.07.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich weiss nicht wirklich ob es hier nach so vielen Monaten noch Sinn macht zu posten, aber gut...

    Im allgemeinen verstehe ich unter Rekursion angewendet auf Verzeichnisse, dass alle Unterverzeichnisse der Reihe nach abgearbeitet werden, und nicht dass es rekursiv programmiert sein soll.
    Das kann find, ausserdem kannst du auch noch mitgeben ob du lieber depth-first oder breadth-first search haben willst, so dass das eine durchaus sinnvolle Antwort war. IMHO war die originale Frage fuer alles weitere auch einfach zu ungenau.

    Kurz zur Form von deinem Skript: Es gibt hier im Board Code-Bloecke, die die Formatierung von Code erhalten, es waere nett wenn du die nutzen wuerdest. Beitraege kann man editieren.

    Zur letzten Frage des TE faellt mir so direkt auch nicht viel ein, ausser dass man die Ausgabe wieder aktivieren sollte, bevor man irgendetwas anderes macht, dann bekommt man wenigstens auch ein wenig output. ;)

    Wenn man schon mit stty Einstellungen rumspielen will, dann doch lieber mit Versicherung. ;)
    Code:
    oldmodes=$(stty --save)
    stty -echo
    read password
    stty $oldmodes
    
    Edit:
    Ach ja, wir wollen ja nicht unhoeflich sein: Willkommen im Board. :)

    mfg,
    bytepool
     
Thema: [bash] Verzeichnisse rekursiv durchlaufren?
Besucher kamen mit folgenden Suchen
  1. bash verzeichnis rekursiv durchlaufen

    ,
  2. bash alle verzeichisse durchlaufen

    ,
  3. bat verzeichnis durchlaufen

Die Seite wird geladen...

[bash] Verzeichnisse rekursiv durchlaufren? - Ähnliche Themen

  1. Debug Modus [Bash]

    Debug Modus [Bash]: Huhu, mach ich gleich noch ein Thread, nachdem mir so gut und schnell geholfen wurde :) Also, ich will nun ein Debug Modus machen, daher ich...
  2. Zeilen bis zum Wort XXXX löschen [Bash]

    Zeilen bis zum Wort XXXX löschen [Bash]: Hallo, Gibt es eine Möglichkeit alle Zeilen in einer Textdatei bis zu einem bestimmten Wort oder einer bestimmten Zeilen Nummer zu löschen?...
  3. [bash] mehrzeilige Rückgabe auswerten

    [bash] mehrzeilige Rückgabe auswerten: Hi also ein grep-befehl bringt folgende rückgabe: /bla/blubb/bling.10.txt:SUCHBEGRIFF WERT /bla/blubb/bling.2.txt:SUCHBEGRIFF WERT...
  4. [bash] if-Abfrage mit RegEx

    [bash] if-Abfrage mit RegEx: Hallo, ich möchte in einem Bash-Skript prüfen, ob die an das Skript übergebene Variable "src_ip" eine IPv4-Adresse ist. Eine detaillierte...
  5. [bash] nicht alle array werte werden eingelesen

    [bash] nicht alle array werte werden eingelesen: Hi, ich habe folgendes Problem ich habe ein array mit 29 Elemnten definiert. Wenn ich mir nun aber echo ${#array} ausgeben lasse, kommt er nur...