bebbys
Goto Top

Alte Daten automatisch per Zip erstellen

Hallo Zusammen,

da ich neu für unseres grosse Laufwerk zuständig bin, suche ich ein Tool/Weg wie ich alte Daten (z.B. letzte Aenderung --> mehr als 1 Jahr angefasst wurden) -->
automatisch (z.B. alle 24h) in ein Zip umgewandelt wird und die Originaldaten dann gelöscht werden.

Ich erwarte mit davon eine viel bessere Optimierung als z.B. komprimieren über die Systemeinstellung.

7.zip und ein Batch ev, aber auch ein Tool zum runterladen/optimieren oder Kaufen passt.

Hat jemand eine Idee, Tipp, Link..

Gruss Bebby

Content-ID: 320886

Url: https://administrator.de/contentid/320886

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

131381
131381 13.11.2016, aktualisiert am 14.11.2016 um 08:15:49 Uhr
Goto Top
Kinderspiel z.B. mit WinRar als Oneliner
winrar.exe M -ep2 -tod365 -r archiv.rar "c:\Ordner\*.*"  
Kann auch jedes halbwegs vernünftige Backup-Programm wie z.B. SyncBackPro.
Selbst mit Robocopy etc. keine große Sache, oder auch mit Powershell schnell gemacht.

Gruß
Kedakai
Kedakai 13.11.2016 um 18:18:51 Uhr
Goto Top
Ich habs mal viel zu aufwendig für ne Linux Maschiene gebaut.
Alle 24H lässt sich hier mit der Crontab lösen.
Bspw: 0 0 * * * /bin/sh /root/zip.sh /mnt/RED

Mein viel zu aufwendiges Script hier:
#!/bin/sh

directory_to_check=$1
remove_original=yes
fileage_to_work_with=365  #Value is in DAYS!
if [ ! -x $directory_to_check ]; then
        echo 'Variable "directory_to_check" was not set properly. Please run the script (for example) like this:  
./zip.sh /mnt/RED or /bin/sh zip.sh /mnt/RED

You have to be in the same directory as the script to start it that way!'  

if [ ! -f "$(which zip)" ] || [ ! -f "$(which find)" ]; then  
        echo "It seems like zip or find is not installed. Exiting."  
        exit 2
fi

if [ "remove_original" = "yes" ]; then  
        for files in $(find $directory_to_check -mtime +$fileage_to_work_with); do
                zip -rm $files.zip $files
                echo "File: $files is zipped and deleted" >> zip_log.txt  
        done 
elif [ "remove_original" = "no" ]; then  
        for files in $(find $directory_to_check -mtime +$fileage_to_work_with); do
                zip -r $files.zip $files                                
                echo "File: $files is zipped" >> zip_log.txt      
        done
else
        echo 'Variable "remove_original" not set properly. Please open the script with your   
favourite text editor and change it to "yes" or "no"'  
fi

NICHT GETESTET! Ich habe es auch so gebaut, dass alle Dateien in eine eigene ZIP kommen. Geht sicherlich auch deutlich besser, halte es meist überschaubar, damit derjenige, der es bekommt auch weiß, was es macht. (Deshalb auch die extra for Schleifen)

@131381 Lösung ist hier sicher besser.
BEBBYs
BEBBYs 13.11.2016 um 19:13:54 Uhr
Goto Top
Danke
BEBBYs
BEBBYs 13.11.2016 um 19:14:07 Uhr
Goto Top
Danke