Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Schleife für das Archivieren von Verzeichnissen mit Unrar-Rar (Shell)

Frage Entwicklung Batch & Shell

Mitglied: Lampux

Lampux (Level 1) - Jetzt verbinden

26.10.2010, aktualisiert 07:52 Uhr, 2947 Aufrufe, 3 Kommentare

Hallo zusammen,


ich habe bereits für das Entpacken eine Schleife geschrieben (in Shell): for f in *.rar;do unrar e -ad -o+ $f;done

Nun bräuchte ich für das Archivieren im Fomrat *.rar eine Schleife, die Ordnerstruktur sieht folgendermaßen aus:

In einem Verzeichnis test sind folgende Verzeichnisse z.B:

0015
Test0004
Baumfotos2010
KeineAhnung01
15

Diese Verzeichnisse sollten in *.rar Archive gepackt werden, also die Ausgabe sollte folgendes ausgeben:

0015.rar
Test0004.rar
Baumfotos2010.rar
KeineAhnung01.rar
15.rar

Die Parameter für das Packen von Rar-Archive sind: rar a [Ausgabedatei.rar] [~/Verzeichnis das hinzugefügt werden soll]

Könnt ihr mir viellecht eine Codelösung geben?

mfg Lampux
Mitglied: micneu
27.10.2010 um 09:48 Uhr
z.b. ich würde mir erstmal eine liste mit den verzeichnissen erstellen die ich sichern will (ist die bekannt oder nicht?)
ich gehe davon aus die struktur ist dünamisch bis auf bis auf das hauptverzeichnis.

bei zum testen:

/tmp
01.
find /tmp/* -type d > rar.txt          # erstellt mir eine text datei in meinem aktuellen verzeichnis mit den namen der verzeichnissen die in /tmp liegen.
diese kannst du jetzt mit einer for schleife abarbeiten

als beispiel so:

01.
#!/bin/bash 
02.
 
03.
### erstellt rar dateien aus den verzeichnissen 
04.
 
05.
DATEI=rar.txt 
06.
ZAEHLER=1 
07.
DEST=/tmp/ 
08.
for i in $(cat $DATEI); do 
09.
    echo $ZAEHLER $i 
10.
    echo rar a $i.rar $i 
11.
    ZAEHLER=$(($ZAEHLER+1)) 
12.
     
13.
done
ich lasse zum testen nur den befehl als echo ausgeben so kann ich sehen was er draus macht.
ich würde jetzt noch die ausgabe in eine art logdatei schreiben und so kann ich jeden tag sehen was gepackt wurde.
möchtest du noch ein anderes ziel verzeichnis haben so solltest du mit sed noch die path angaben anpassen.

das könnte man noch mit einbauen:

01.
sed -e "s/\/*.\///g;s/\///g" rar.txt
entfernt den path

also könnte man es so lösen

01.
#!/bin/bash 
02.
 
03.
### erstellt rar dateien aus den verzeichnissen 
04.
 
05.
DATEI=rar.txt 
06.
ZAEHLER=1 
07.
DEST=/backup/ 
08.
SOURCE=/tmp/* 
09.
 
10.
find $SOURCE -type d > rar.txt  
11.
 
12.
for i in $(cat $DATEI); do 
13.
    echo $ZAEHLER $i 
14.
    b=`echo $i | sed -e "s/\/*.\///g;s/\///g"` 
15.
    echo rar a $DEST$b.rar $i 
16.
    ZAEHLER=$(($ZAEHLER+1)) 
17.
     
18.
done
gruß michael
Bitte warten ..
Mitglied: micneu
29.10.2010 um 20:33 Uhr
und hast du schon getestet?

gruß michael
Bitte warten ..
Mitglied: micneu
20.04.2011 um 15:42 Uhr
Habe es nochmal etwas überarbeitet

01.
#!/bin/bash 
02.
 
03.
### erstellt rar dateien aus den verzeichnissen 
04.
 
05.
ZAEHLER=1 
06.
DEST=/tmp 
07.
SOURCE=/var/ 
08.
 
09.
for i in $(find "$SOURCE" -maxdepth 1 -type d); do 
10.
    echo $ZAEHLER $i 
11.
    b=`echo $i | sed -e "s/\///g"` 
12.
    echo rar a $DEST/$b.rar $i 
13.
    ZAEHLER=$(($ZAEHLER+1)) 
14.
done 
15.
 
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Schleife mit Unterverzeichnissen, die Ausgabe kürzen (tokens evtl.) (5)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse (4)

Frage von grisur zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (30)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...