Dateien bis zu einer bestimmtenVerzeichnisgröße verschieben
Dateien bis zu einer bestimmtenVerzeichnisgröße verschieben
Hallo,
ich mache regelmäßig Sicherungen meiner Dateien und brenne sie auf DVD's.
Das will ich jetzt erheblich automatisieren.
Normalerweise benutze ich keine große Sicherungsdatei, wo alles drin ist, sondern mehrere kleine,die nach Datentypen benannt, und auf eine Größe geteilt sind.
Die Teilung lasse ich von Rar auf eine maximale Größe von 1GB automatisch ausführen.
Da mein DVD Brenner jetzt auch unter Linux problemlos läuft, und ich kompfortabel
aus einem Script her brennen kann, soll das daß Script auch noch übernehmen, und mir
nur noch sagen, wann ich die DVD wechseln soll.
Nun zum eigentlichen Problem:
Ich habe in meinem Sicherungsverzeichnis sagen wir mal so ca. 30 Dateien mit einer Gesamtgröße von 12 GB.
Das Script soll dann ein Unterverzeichnis ( DVD1) erstellen, und dann so viele Dateien hineinverschieben, bis 4,2 GB erreicht sind.
Dann soll es noch ein Unterverzeichnis ( DVD2 ) erstellen, und wieder so viele Dateien hineinverschieben, bis 4,2 GB erreicht sind.
usw.
Man könnte natürlich berechnen, welche Dateien mit welcher Größe am nächsten die 4,2 GB erreichen,aber mir ist es lieber, wenn die Teilarchive hintereinander liegen.
Dadurch wird die DVD zwar nicht maximal ausgenutzt, aber das will ich in Kauf nehmen.
Wie mache ich das jetzt am besten ??
ich danke euch für Eure Hilfe.
Jogibär
PS: multiCD und mondo kann ich nicht nutzen, da die noch ein Archiv erstellen würden
ich mache regelmäßig Sicherungen meiner Dateien und brenne sie auf DVD's.
Das will ich jetzt erheblich automatisieren.
Normalerweise benutze ich keine große Sicherungsdatei, wo alles drin ist, sondern mehrere kleine,die nach Datentypen benannt, und auf eine Größe geteilt sind.
Die Teilung lasse ich von Rar auf eine maximale Größe von 1GB automatisch ausführen.
Da mein DVD Brenner jetzt auch unter Linux problemlos läuft, und ich kompfortabel
aus einem Script her brennen kann, soll das daß Script auch noch übernehmen, und mir
nur noch sagen, wann ich die DVD wechseln soll.
Nun zum eigentlichen Problem:
Ich habe in meinem Sicherungsverzeichnis sagen wir mal so ca. 30 Dateien mit einer Gesamtgröße von 12 GB.
Das Script soll dann ein Unterverzeichnis ( DVD1) erstellen, und dann so viele Dateien hineinverschieben, bis 4,2 GB erreicht sind.
Dann soll es noch ein Unterverzeichnis ( DVD2 ) erstellen, und wieder so viele Dateien hineinverschieben, bis 4,2 GB erreicht sind.
usw.
Man könnte natürlich berechnen, welche Dateien mit welcher Größe am nächsten die 4,2 GB erreichen,aber mir ist es lieber, wenn die Teilarchive hintereinander liegen.
Dadurch wird die DVD zwar nicht maximal ausgenutzt, aber das will ich in Kauf nehmen.
Wie mache ich das jetzt am besten ??
ich danke euch für Eure Hilfe.
Jogibär
PS: multiCD und mondo kann ich nicht nutzen, da die noch ein Archiv erstellen würden
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Hi Jogibär,
also wie du das genau machst hängt natürlich von der Script / Programmiersprache ab in der du das schreiben willst.
Ich würde das so machen, das er eine Datei nimmt, die Größe in einer Variablen speicher, die Datei in das Unterverzeichnis für die erste DVd kopiert und dann die 2. Datei nimmt, die Größe zu der Variablen hinzuaddiert und die Datei dann auch in das Unterverzeichnis kopiert. Bevor er immer die nächste Datei nimmt schaut er sich die Größe an die in der Variablen gespeichert ist und entscheidet dann ob er noch eine Datei hinzufügt oder die DVd brennt (wegen dem Platz würde ich erst die DVD brennen, das Verzeichnis löschen und dann die 2. DVD erstellen. Musst du dann natürlich noch so einrichten, das er weiß bis zu welcher Datei er gekommen ist (wenn du alle in einem Scriot machst sollte das kein Problem werden, weil du das Verzeichnis ja nur einmal öffnest).
by, Martin
also wie du das genau machst hängt natürlich von der Script / Programmiersprache ab in der du das schreiben willst.
Ich würde das so machen, das er eine Datei nimmt, die Größe in einer Variablen speicher, die Datei in das Unterverzeichnis für die erste DVd kopiert und dann die 2. Datei nimmt, die Größe zu der Variablen hinzuaddiert und die Datei dann auch in das Unterverzeichnis kopiert. Bevor er immer die nächste Datei nimmt schaut er sich die Größe an die in der Variablen gespeichert ist und entscheidet dann ob er noch eine Datei hinzufügt oder die DVd brennt (wegen dem Platz würde ich erst die DVD brennen, das Verzeichnis löschen und dann die 2. DVD erstellen. Musst du dann natürlich noch so einrichten, das er weiß bis zu welcher Datei er gekommen ist (wenn du alle in einem Scriot machst sollte das kein Problem werden, weil du das Verzeichnis ja nur einmal öffnest).
by, Martin
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Hallo,
Danke für deine Antwort.
Da ich die Dateien in das entsprechende Verzeichnis verschieben will, bräuchte ich
keine Liste, welche schon bearbeitet sind.
Ich habe schon einige Internetseiten abgegrast , aber wie ich die Dateigröße in eine Variable bekomme, habe ich noch nicht gefunden.
***
Bei vielen Anleitungen habe ich das Gefühl, das der Autor zeigen will, was er alles kann und wie er sehr umfangreiche Funktionen in nur eine Zeile bekommt
( mit 20 Klammern !! usw.).
Das sieht dann zwar wahnsinnig toll aus, aber ist schwer zu verstehen.
Wenn ich so meine C Programme schreiben würde, würde ich selbst nach 2 Wochen nicht mehr durchblicken.
***
Als Script will ich die bash benutzen.
Jogibär
Danke für deine Antwort.
Da ich die Dateien in das entsprechende Verzeichnis verschieben will, bräuchte ich
keine Liste, welche schon bearbeitet sind.
Ich habe schon einige Internetseiten abgegrast , aber wie ich die Dateigröße in eine Variable bekomme, habe ich noch nicht gefunden.
***
Bei vielen Anleitungen habe ich das Gefühl, das der Autor zeigen will, was er alles kann und wie er sehr umfangreiche Funktionen in nur eine Zeile bekommt
( mit 20 Klammern !! usw.).
Das sieht dann zwar wahnsinnig toll aus, aber ist schwer zu verstehen.
Wenn ich so meine C Programme schreiben würde, würde ich selbst nach 2 Wochen nicht mehr durchblicken.
***
Als Script will ich die bash benutzen.
Jogibär
Bin gerade dabei etwas für dich zu basteln... Dauert aber noch ein wenig.
[ jabber ] chimerer@amessage.de
Ok hier isses:
Das Ganze in deinem Sicherungsverzeichnis ausführen.
Code: Alles auswählen
#!/bin/sh
#Maximale Grösse für ein Verzeichnis
max=4100
t=0
mkdir DVD0
for i in $(ls | grep -v DVD0)
do
size=`du -m DVD$t | cut -f1`
if [ $size -lt $max ]
then
mv $i DVD$t
else
t=`expr $t + 1`
mkdir DVD$t
mv $i DVD$t
fi
done
[ jabber ] chimerer@amessage.de
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Also wenn es nur eine Sicherungskopie sein soll, dann wäre hiervielleicht ein cp $i DVD$t besser.
Wenn ich das richtig sehe, dann funktioniert das Script auch nur mit Datein, wenn noch Unterverzeichnisse in dem Verzeichnis sind, dann klappt das nicht (aber das sollte ja für dich reichen, Jogibär).
by, Martin
Code: Alles auswählen
if [ $size -lt $max ]
then
mv $i DVD$t
Wenn ich das richtig sehe, dann funktioniert das Script auch nur mit Datein, wenn noch Unterverzeichnisse in dem Verzeichnis sind, dann klappt das nicht (aber das sollte ja für dich reichen, Jogibär).
by, Martin
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Jep, aber das Script wird ja in dem Ordner mit den schon gesicherten Dateien ausgeführt, die müssen also nicht nochmal gesichert werden...
Gute Nacht
Ja, geht in der jetzigen Form nur mit Dateien, aber nach mehr war ja auch nicht gefragt.Wenn ich das richtig sehe, dann funktioniert das Script auch nur mit Datein, wenn noch Unterverzeichnisse in dem Verzeichnis sind, dann klappt das nicht (aber das sollte ja für dich reichen, Jogibär).
Gute Nacht
[ jabber ] chimerer@amessage.de