Skip to content

Archiviert Dateien als ZIP-Archive

Die Archivierung wird durch eine INI-Datei mit Sektion zip gesteuert und steht in zwei verschiedenen Modi zur Verfügung:

Dateimodus: Dabei werden Dateien in ein neues ZIP-Archiv verschoben und komprimiert. Das sind alle Dateien in den Ordnern laut INI-Option folders, die älter als die INI-Option ``days sind, eine Dateiendung mit regexhaben. Der Name der ZIP-Datei ergibt sich aus dem Präfix (INI-Optionarchiv_name) sowie dem aktuellen Datum und Uhrzeit.

Ordnermodus: Bei einer INI-Option von archive_folders = 1 werden statt Dateien Ordner in den Ordner der INI-Option dest komprimiert. Der Name ergibt sich dann aus der INI-Option archiv_name, dem Ordnernamen sowie dem aktuellen Datum und Uhrzeit.

powershell
python prozessing.pyz compress_archives_xxxx.ini

INI-Datei: zip

ini
[zip]
days =                  # in Tagen, nach wie vielen Tagen die gefundenen Dateien archiviert werden sollen
regex =                 # Regulärer Ausdruck zum Suchen von Dateien
archiv_name = archiv    # Präfix wie der Dateiname des Archivs heißen soll gefolgt von einem eindeutigen Zeitstempel
archive_type = zip|tar|tar.gz|tgz|tar.bz2|7z  # Archiv-Format ZIP oder TAR oder 7z
archive_folders = 0|1   # Dateimodus oder Ordnermodus

# Archivierung eines einzelnen Ordners
folders = rohdaten
# Archivierung mehrerer Ordner
folders =
    /2265/rohdaten
    /2304/rohdaten
# Archivierung mehrerer Ordner mit Wildcard
folders =
    D:/Daten/arch/*
# Archivierung nach `dest` anstatt innerhalb `folders`. Platzhalter {yyyy} wird mit Jahreszahl ersetzt.
dest = /archiv/{yyyy}

INI-Beispiel

Dateien mit der Endung .roh und einem Alter > 4 Tage werden zu einer Datei archiv_YYYYMMDDhhmmss gepackt

ini
[zip]
days = 4
regex = .roh
archiv_name = archiv
folders =
    /2265/msr
    /2304/msr

Dateien innerhalb des Ordners d:/HoPI2/archive mit einem Alter > 4 Tage werden im Ordner z:/archiv/{yyyy} gepackt. Befindet sich zum Beispiel eine Datei d:/HoPI2/archive/2234/foo.txt, dann wird diese im Ordner z:/archiv/2022 mit dem Dateinamen server1_2234_YYYMMDDhhmmss archiviert.

ini
[zip]
days = 4
regex = .*
archiv_name = server1
folders = d:/HoPI2/archive
dest = z:/archiv/{yyyy}
archive_folders = 1

Komprimiert mittels 7z.exe die Datei D:/Daten/export/Export.zrxp nach D:/Daten/export/Export.7z

ini
[zip]
days = 0
regex = Export.zrxp
folders = D:/Daten/export/
archiv_name = Export.7z
archive_type = 7z