Zum Inhalt springen

rabadag

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

Beiträge von rabadag

  1. Besten Dank für die links..

    Leider aber sind die Progis für mein vorhaben zu umfangreich und das was ich wirklich brauche nicht möglich ist.

    Ich hab mir jetzt mal ein script zusammen gebaut das schon ganz gut funktioniert.

    Muss da nur noch ein 2 Dinge lösen wo ich euch nochmals um Hilfe bitte.

    Mein Script:

    
    #!/bin/sh                               
    
    
    
    
    bakdir="/Daten";
    
    destdir="/bdrive/test1";               
    
    excludelog="/bdrive/exclude.log";      
    
    rm "/bdrive/exclude.log";
    
    
    
    ### Finde alle Ordner    
    
    find $bakdir -maxdepth 1 -mindepth 1 -type d | while read directory 
    
    do                                                                  
    
    echo "suche in  $directory"                                         
    
    sleep 1                                                             
    
    SIZE=`du -s "$directory" | cut -f 1`                                
    
    
    ## Teste auf grösse des Ordners
    
    if [ $SIZE -gt 4331580 ]       
    
    then                           
    
    
               echo "Ordner ist zu gross $SIZE"
    
               touch "$excludlog"              
    
               echo $directory >> $excludelog  
    
                destfolder=`basename "${directory}"`                                                                                                          
    
                echo "Speichere nach $destdir/$destfolder"                                                                                                    
    
    sleep 1                                                                                                                                                   
    
    
    ## Erstelle Destination Ordner
    
    if [ -d "$destdir/$destfolder" ]    
    
    then                                
    
        echo "stepp 1 Ordner $destdir/$destfolder ok"
    
        sleep 1                                              
    
    else                                                     
    
        echo "Stepp 1 Ordner exisiert nicht Ich erstlle ihn" 
    
        mkdir "$destdir/$destfolder"                         
    
    sleep 1                                                  
    
    fi                                                       
    
    
    else
    
    
    
    
    destfolder=`basename "${directory}"`
    
    
    ### Erstelle Destination Ordner     
    
    if [ -d "$destdir/$destfolder" ]    
    
    then                                
    
            echo "stepp 1 Destination Ordner $destdir/$destfolder vorhanden"
    
    sleep 1                                                                 
    
    else                                                                    
    
        echo "Stepp 1 Destination Ordner $dest/$destfolder existiert nicht Ich erstelle ihn jetzt"
    
            mkdir "$destdir/$destfolder"                                                        
    
    sleep 1                                                                                     
    
    fi                                                                                          
    
    
    ## Suche nach Unterordnern die Archiviert werden
    
    find "$directory" -maxdepth 1 -mindepth 1 -type d | while read folder
    
    do                                                                   
    
                VNAME=`basename "${folder}"`                             
    
                destfolder=`basename "${directory}"`
    
    
    ## Teste erneut ob Destination Ordner Existiert und Starte Sicherung
    
    if [ -d "$destdir/$destfolder" ]
    
    then
    
    
    echo " stepp 2 Destination Ordner $dest/$destfolder vorhanden"
    
    sleep 1
    
    find "$directory" -maxdepth 1 -type f -print | tar -czvf "$destdir/$destfolder/rootdir.tgz" -T -
    
    
    tar -czvf "$destdir/$destfolder/$VNAME.tgz" "$folder" | tee "$destdir/$destfolder/$VNAME.log"
    
    
    else
    
    echo "stepp 2 Destination Ordner $dest/$destfolder existiert nicht erstelle ihn jetzt"
    
    mkdir "$destdir/$destfolder"
    
    touch "$destdir/$destfolder/$FNAME.else"
    
    tar -czvf "$destdir/$destfolder/$VNAME.tgz" "$folder" | tee "$destdir/$destfolder/$VNAME.log"
    
    fi
    
    
    done
    
    
    fi
    
    
    done
    
    

    Funktion

    1.

    Suche nach Ordnern kleiner 4Gb und erstelle Ordner Struktur auf Backup Dir. maxdepth -1

    2.

    Suche Ordner grösser 4Gb und erstelle Ordner Struktur auf Backup dir

    Maxdepth -1

    3.

    Suche nach Daten die im entsprechenden Ordner die <=4G sind und sichere sie nach Backup Dir Unterordner. find $1 maxdepth 0 -type -f

    4.

    Sichere Unterordner die im entsprechenden Hauptordner <=4G liegen und sichere sie nach Backup Dir Unterordner.

    5. Fehlt noch.

    Die letzte Funktion kriege ich nicht hin..

    Es sollte nun für jeden Ordner der grösser ist als 4GB Punkt 1 - 5 wider holden.

    schleife--

    All so Ordner anlegen >=4GB, erneut im Source Unterordner suchen die grösser als 4Gb sind, Unterordner anlegen, Alle Ordner sichern die kleiner 4Gb sind. und so weiter,, bis der ganze Pfad gesichert ist.

    schleife ende --

  2. Hallo liebe Freunde.

    Ich bin mal an einem Punkt angelangt, wo mein wissen nicht ausreicht um folgendes zu realisieren.

    Situation:

    Ein Server mit rund 2,5 Tera Daten in unterschiedlichen grossen Unterordnern muss gesichert werden.

    Problem:

    Da das erstellen eines so grossen Archivs schlicht Unsinn ist, dachte ich mir, das ich versuche jeden Ordner der eine Bestimmte Grösse erreicht Separate in die entsprechenden und getrennt zu sichern, damit die archive nicht zu gross werden.

    Zur Idee:

    Hauptordner hat 2,5 Thera Daten

    /Daten 2.5T

    /Daten/Daten1 2T

    /Daten/Daten2 10G

    /Daten/Daten3 1G

    /Daten/Daten4 400G

    /Daten/Daten5 90G

    Nun soll das Skript die Hautordner die eine Bestimmte Grösse 10G nicht überschreiten sichern.

    Das wären dann

    tar -czvf /Backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten2

    tar -czvf /backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten3

    Die Ordnern die grösser sind, sollen dabei ignoriert werden und im nächsten schritt innerhalb dieses Ordner erneut gesichert werden also.

    tar -czvf /backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten1/Dir1

    und so weiter, damit ich am schluss eine Backup Struktur erhalte, die ordnermässig identisch ist, und innerhalb der Ordner die Tar Archive liegen wo der Source Ordner nicht grösser ist als die z.b 10G

    aber dem source Direktory entspricht.

    ein Problem das dabei noch ein Hindernis sein könnte ist, das diverse Ordner ein Lehrschlag enthalten.

    Ich hab mal versucht anzufangen und hab mir mal das zusammen gebastelt aber halt ohne Grössen Funktion.

    
    
    DATE=$(date +%m-%d-%H%M%S)
    
    bakdir="/Daten/dir1/";
    
    bakdirlength=${#bakdir};                            
    
    destdir="/bdrive/dir1/";     
    
    
    
        for directory in $(find $bakdir -maxdepth 1 -mindepth 1  -type d); do
    
        dirname=${directory:$bakdirlength}                                   
    
         tar -X $exclude -czvf $destdir$dirname.tgz $directory | tee destdir$dirname.log
    
        done  
    
    
    

    Wie kann ich dies verwirklichen?

  3. ich weiß nicht ob es der optimale weg ist, aber ich würde dafür awk nutzen..

    (vgl. man awk)

    ist denn das quellfíle immer gleich aufgebaut?

    hmmm..

    aber wie kann ich das mit awk auswerten.

    Sagen wir mal ich hab im array dieses Ergebnis.

    
    Track ID:    1
    
    Stream type: H.264
    
    Stream ID:   V_MPEG4/ISO/AVC
    
    Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976
    
    Stream lang: ger
    
    Track ID:    2
    
    Stream type: AC3
    
    Stream ID:   A_AC3
    
    Stream info: Bitrate: 224Kbps Sample Rate: 48KHz Channels: 2
    
    Stream lang: ger
    
    Track ID:    3
    
    Stream type: AC3
    
    Stream ID:   A_AC3
    
    Stream info: Bitrate: 640Kbps Sample Rate: 48KHz Channels: 6
    
    Stream lang: eng == *A_DTS ]]
    
    
    wie trenne ich nun das array mit dem inhalt in z.b anzahl Tracks und werte die dann aus. Ich muss am Schluss jeden Track auf Inhalte testen und dementsprechend ein file schreiben. und am Schluss soll z.b für den Video Stream die Ausgabe so aussehen
    
    #### Array inhalt Track1
    
    Track ID:    1
    
    Stream type: H.264
    
    Stream ID:   V_MPEG4/ISO/AVC
    
    Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976
    
    Stream lang: ger
    
    
    #### Die magische Auswertung
    
    
    if  ' cat $array[*] | grep "Stream info" | grep High@5.1' 
    
    then
    
    VIDEOFORM="level=4.1"
    
    else
    
    VIDEOFORM=""
    
    
    
    ## Ausgabe in file
    
    echo "$STREAMID, $filename, $VIDEOFORM, insertSEI, contSPS, $TRACKID, $LANG" > meta.meta
    
    
    # Ergebins im File würde dan so aussehen müssen
    
    V_MPEG4/ISO/AVC, ./file.mkv, level=4.1, insertSEI, contSPS, track=1, lang=ger
    
    

  4. Hallo Forum.

    Ja bin neu hier, und stell mich auch gleich kurz vor.

    Bin ein echt abgefressener Linux freak und begebe mich in neue gebiete das bash Scripte.

    nun das klapp auch schon super und hab schon einige dinge zusammen gebaut.

    nun aber stehe ich vor nen kleinen Herausforderung wo ich nicht weis wie es weiter geht.

    Ich versuche mittels tsMuxer HDTV files automatisch passend für meine DM800 zu realisieren. Der tsMuxer ist ein Kommando Zeilen Converter, der MKV Files dreckt in .ts umwandelt.

    Nun aber das Prob. der tsMuxer benötigt eine meta datei die zuerst erstellet werden muss. das heist, mann muss zuerst das mkv file auslesen und dan eine meta datei erstellen.

    tsmuxer $file

    
    Track ID:    1
    
    Stream type: H.264
    
    Stream ID:   V_MPEG4/ISO/AVC
    
    Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976
    
    Stream lang: ger
    
    Track ID:    2
    
    Stream type: AC3
    
    Stream ID:   A_AC3
    
    Stream info: Bitrate: 224Kbps Sample Rate: 48KHz Channels: 2
    
    Stream lang: ger
    
    Track ID:    3
    
    Stream type: AC3
    
    Stream ID:   A_AC3
    
    Stream info: Bitrate: 640Kbps Sample Rate: 48KHz Channels: 6
    
    Stream lang: eng
    
    
    wie man sieht stehen da nun alle infos die benötig werden. Wie kann ich nun Anhang der Strems Track 1. Track 2, Track 3 entsprechend ein File erstellen? Ergebnis sollte so aussehen
    
    V_MPEG4/ISO/AVC, ./file.mkv, level=4.1 insertSEI, contSPS, track=1, lang=ger
    
    A_AC3, ./file.mkv, track=2, lang=ger
    
    A_AC3, ./file.mkv, track=3, lang=eng
    
    
    Die Werte Track=1,2 Level=4.1, lang=ger, sind variabel. Ich muss jeden Track mit Kriterien auswerten können und benötige zur Auswertung eines Tracks Videostrem: Stream type, Stream ID, Stream info, Stream lang, Audio Strems: Track ID, Stream type, Stream ID, Stream lang. Mittels der richtigen Auswertung kann ich dann mittels Echo ein File schreiben. Aber eben wie baut man eine solche Auswertung aus und wie schreib ich das ganze in ein array?
    
    
    ##### Track ID: 1
    
    TESTMKV1=`/usr/bin/tsMuxeR $MKV | grep 'Track ID:^1'`
    
    if [[ "$TESTMKV1" == *V_MPEG4/ISO/AVC ]] ; then
    
       Videostream="V_MPEG4/ISO/AVC,"
    
        if [[ "$TESTMKV1" == *lang:=ger ]] ; then
    
       Videolang="ger"
    
       else
    
       Videolang="eng"
    
       else 
    
       if [[ "$TESTMKV1" == *High@5.1 ]] ; then
    
       Videoformat="High@4.1,"
    
    
       fi
    
      fi
    
     fi
    
     	 echo "$Videostream "$MKV", $Videoformat insertSEI, contSPS, track=1, lang=$Videolang" > file.meta
    
    
    

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...