Seite 1 von 1
Unterverzeichnisse auf DVDs verteilen
Verfasst: Mittwoch 19. Dezember 2012, 14:59
von mit
Hallo,
ich habe folgenden Befehl gefunden:
Code: Alles auswählen
sudo tar czp /home/homebackup$(date +%Y%m%d).tgz /home/user | split -d -b 4480m - /home/homebackup$(date +%Y%m%d).tgz
Dieser Befehl komprimiert die Verzeichnisse um diese auf mehrere DVDs zu verteilen. Ich suche nach einer Möglichkeit Unterverzeichnisse gleich maessig auf DVDs zu verteilen ohne diese zu komprimieren.
Gibt es bereits ein Programm oder gibt es Python Skript fuer dieses Problem?
Vielen Dank im Vorraus.
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Mittwoch 19. Dezember 2012, 15:14
von EyDu
Hallo.
Das Stichwort lautet
Bin Packing Problem. Da das Problem NP-vollständig ist, musst du die Grenzen mal austesten oder nach einer Implementierung suchen. Um eine Approximation wirst du aber wohl nicht herum kommen.
Sebastian
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Donnerstag 20. Dezember 2012, 10:03
von mit
Fuer mich ist mehr wichtig, dass die Unterverzeichnisse alphabetisch bleiben und wenn auf der DVD z.B. 100 MB oder mehr nicht benutzt werden ist es nicht so schlimm.
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Donnerstag 20. Dezember 2012, 10:21
von EyDu
Ok, wo ist dann das Problem? Du packst einfach so lange Ordner auf die DVD bis es nicht mehr passt und machst dann mit der nächsten DVD weiter.
Code: Alles auswählen
>>> import random
>>> MAX_SIZE = 10
>>> sizes = [random.randint(0, MAX_SIZE) for _ in xrange(20)]
>>> sizes
[10, 2, 8, 0, 10, 9, 2, 8, 7, 10, 3, 10, 10, 3, 9, 10, 1, 6, 1, 1]
>>> dvd = []
>>> for size in sizes:
... if sum(dvd)+size <= MAX_SIZE:
... dvd.append(size)
... else:
... print dvd
... dvd = [size]
...
[10]
[2, 8, 0]
[10]
[9]
[2, 8]
[7]
[10]
[3]
[10]
[10]
[3]
[9]
[10]
>>> if dvd:
... print dvd
...
[1, 6, 1, 1]
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Donnerstag 20. Dezember 2012, 16:19
von JonasR
EyDu hat geschrieben:Ok, wo ist dann das Problem?...
[10]
[2, 8, 0]
[10]
[9]
[2, 8]
[7]
[10]
[3]
[10]
[10]
[3]
[9]
[10]
...
[1, 6, 1, 1][/code]
Ich habe es dir markiert

Es wird Platz verschwendet
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Donnerstag 20. Dezember 2012, 16:25
von BlackJack
@JonasR: Wo denn? Du kannst die beiden markierten Einträge nicht zusammenfassen, weil da einer dazwischen liegt. Die Reihenfolge soll ja nicht verändert werden.
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Donnerstag 20. Dezember 2012, 16:31
von JonasR
Ah okay habe seinen zweiten Post nicht gelesen. Passt für mich nicht mit dem ersten zusammen
Re: Unterverzeichnisse auf DVDs verteilen
Verfasst: Samstag 29. Dezember 2012, 14:51
von mit
danke es hat prima funktioniert