petere
Goto Top

Toll zur Verwaltung von Files am Fileserver

Hallo,

ich bräuchte ein Tool, das verschiedene Wartungsarbeiten an einem Fileserver vornehmen kann. Leider kenne ich keine fertige Lösung und ehe ich mich ans selbst Programmieren mache wollte ich euch noch um Rat fragen. Beispiel-Operationen sind:

- lösche alle Dateien im Format *.bak, die älter als 14 Tage sind
- außer: die Datei wurde am 01.xx.xxxx erstellt (Monatsersten)

- Packe alle Dateien, die am 01.xx.xxxx (Monatsersten) erstellt wurden nach einem Kalenderjahr in eine .zip-Datei

- Packe alle *.txt-Dateien in diesem Unterordner in eine .zip-Datei, die älter als 30 Tage sind

- Protokolliere alle Operationen


Habt ihr da was Fertiges?
Viele Grüße,
Peter

Content-Key: 262130

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

Printed on: April 20, 2024 at 01:04 o'clock

Mitglied: 117643
Solution 117643 Feb 03, 2015, updated at Feb 04, 2015 at 08:08:48 (UTC)
Goto Top
sowas kannste am besten selbst programmieren, zb mit autoit oder der kraftmuschel face-smile
Member: colinardo
colinardo Feb 04, 2015 updated at 10:13:18 (UTC)
Goto Top
Moin Peter,
kein Thema, mit Powershell alles schnell erledigt...
- lösche alle Dateien im Format *.bak, die älter als 14 Tage sind
- außer: die Datei wurde am 01.xx.xxxx erstellt (Monatsersten)
dir "C:\temp\*.bak" -recurse | ?{$_.LastWriteTime -lt (get-date).AddDays(-14) -and $_.LastWriteTime.Day -ne 1 } | Remove-Item -Force  
- Packe alle Dateien, die am 01.xx.xxxx (Monatsersten) erstellt wurden nach einem Kalenderjahr in eine .zip-Datei
# benötigt wird mindestens NET-Framework 4.5 und Powershell 3.0 
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.IO.Compression.FileSystem
$files = dir C:\temp\*.* -recurse | ?{!$_.PSISContainer -and $_.LastWriteTime.Day -eq 1 }
$zip = [System.IO.Compression.ZipFile]::Open("C:\temp\myfile.zip",[System.IO.Compression.ZipArchiveMode]::Create)  
$files | %{[void][System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip,$_.FullName,$_.Name)}
$zip.Dispose()
- Packe alle *.txt-Dateien in diesem Unterordner in eine .zip-Datei, die älter als 30 Tage sind
# benötigt wird mindestens NET-Framework 4.5 und Powershell 3.0 
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.IO.Compression.FileSystem

$files = dir ".\*.*" | ?{$_.LastWriteTime -lt (get-date).AddDays(30)}  
$zip = [System.IO.Compression.ZipFile]::Open("C:\temp\myfile.zip",[System.IO.Compression.ZipArchiveMode]::Create)  
$files | %{[void][System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip,$_.FullName,$_.Name)}
$zip.Dispose()
- Protokolliere alle Operationen
Das lass ich dir noch als Hausaufgabe face-wink

Grüße Uwe

p.s. Schreibfehler im Titel lassen sich korrigieren face-wink