Fileserver Daten älter als 14 Tage löschen!
Hallo Zusammen,
hat jemand evtl einen Lösungsvorschlag für mein Projekt?
Ich bin dabei einen Fileserver aufzusetzen und möchte nun
z.b. das Dateien die älter als 14(beliebig) Tagen gelöscht werden sollen.
Ich habe hierzu eine Batch erstellt :
Sobald ich jedoch ein aktuellen Ordner habe, mit alten Dateien darin, sollten er diese eigentlich auch löschen, was er leider nicht tut.
Kann mir hierzu jemand evtl einen Lösungsvorschlag geben?
Vielen Dank
LG Mike
hat jemand evtl einen Lösungsvorschlag für mein Projekt?
Ich bin dabei einen Fileserver aufzusetzen und möchte nun
z.b. das Dateien die älter als 14(beliebig) Tagen gelöscht werden sollen.
Ich habe hierzu eine Batch erstellt :
@echo off
echo ----------------------------------------------
echo Dateien älter als 14 Tage werden gelöscht
echo ----------------------------------------------
Forfiles /P D:\IT_test /D -14 /C "cmd /c rmdir /q /s @path "
forfiles /p D:\IT_test /s /d -14 /c "cmd /c rd @file /s /q"
forfiles /p D:\IT_test /s /d -14 /c "cmd /c del /s /q @path"
echo ----------------------------------------------
echo Dateien älter als 14 Tage wurden gelöscht
echo ----------------------------------------------
Sobald ich jedoch ein aktuellen Ordner habe, mit alten Dateien darin, sollten er diese eigentlich auch löschen, was er leider nicht tut.
Kann mir hierzu jemand evtl einen Lösungsvorschlag geben?
Vielen Dank
LG Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 328028
Url: https://administrator.de/forum/fileserver-daten-aelter-als-14-tage-loeschen-328028.html
Ausgedruckt am: 22.12.2024 um 19:12 Uhr
11 Kommentare
Neuester Kommentar
Hi!
Hatte das so ähnlich:
Forfiles /p E:\Ordner\ /m *.tib /d -35 -c "cmd /c echo @File>>E:\Ordner\TIBs_am_%date%_geloescht.txt"
Forfiles /p E:\Ordner\ /m *.tib /d -35 -c "cmd /c del @File"
In der ersten Zeile erstellt die Batch jedesmal eine txt-Datei mit Datum und drin steht welche Dateien gelöscht wurden, zweite Zeile der eigentliche Löschvorgang.
Gelöscht werden in meinem Beispiel Acronis tib-Dateien.
Gruß, rudeboy
Hatte das so ähnlich:
Forfiles /p E:\Ordner\ /m *.tib /d -35 -c "cmd /c echo @File>>E:\Ordner\TIBs_am_%date%_geloescht.txt"
Forfiles /p E:\Ordner\ /m *.tib /d -35 -c "cmd /c del @File"
In der ersten Zeile erstellt die Batch jedesmal eine txt-Datei mit Datum und drin steht welche Dateien gelöscht wurden, zweite Zeile der eigentliche Löschvorgang.
Gelöscht werden in meinem Beispiel Acronis tib-Dateien.
Gruß, rudeboy
Hallo,
warum sollte man auf einem Fileserver Dateien löschen wollen die älter als 14 Tage sind?
Das führt den Sinn eines Fileservers schon fast ad Absurdung.
Vor allem sollte nicht das erstelldatum ausschlaggebend sein, sondern die letzte Verwendung.
Was sind denn die Anforderungen? Ich bin mir sicher da läßt sich was besseres finden.
Selbst wenn es sich um eine Freigabe handelt, auf der sich Backups tummeln, sollten die Backupjobs das löschen der Altdaten übernehmen, nachdem das aktuelle Backup angelegt wurde.
Gruß
Chonta
warum sollte man auf einem Fileserver Dateien löschen wollen die älter als 14 Tage sind?
Das führt den Sinn eines Fileservers schon fast ad Absurdung.
Vor allem sollte nicht das erstelldatum ausschlaggebend sein, sondern die letzte Verwendung.
Was sind denn die Anforderungen? Ich bin mir sicher da läßt sich was besseres finden.
Selbst wenn es sich um eine Freigabe handelt, auf der sich Backups tummeln, sollten die Backupjobs das löschen der Altdaten übernehmen, nachdem das aktuelle Backup angelegt wurde.
Gruß
Chonta
Das is was für'n Azubi am ersten Ausbildungstag
Gruß
gci 'd:\IT_test' -recurse | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-14)} | del -force
Gruß
Hallo,
Sondern? Was tut er dann Kopieren, vervielfältigen, umbenennen, oder einfach nichts? Definiere mal dein nicht tut. Mit welchen Rechten bzw. Benutzerkontext soll deine Bacht denn laufen? Kann es sein das du erst deine Dateien löschen musst bevor es an die Ordner geht? Mach mal dein @echo OFF raus und schau was dir hingeschrieben wird. Und nachdem deine Dateien (Zeule 7) erfolgreich gelöscht wurden hast du natürlich für deine Zeile 5 nunmehr keine Daten welche deine Kriterien erfüllen, somit läuft das nun ins leere...
Deine Batch tut schon etwas, nur ob es das ist was du dir vorstellst?
Gruß,
Peter
Sondern? Was tut er dann Kopieren, vervielfältigen, umbenennen, oder einfach nichts? Definiere mal dein nicht tut. Mit welchen Rechten bzw. Benutzerkontext soll deine Bacht denn laufen? Kann es sein das du erst deine Dateien löschen musst bevor es an die Ordner geht? Mach mal dein @echo OFF raus und schau was dir hingeschrieben wird. Und nachdem deine Dateien (Zeule 7) erfolgreich gelöscht wurden hast du natürlich für deine Zeile 5 nunmehr keine Daten welche deine Kriterien erfüllen, somit läuft das nun ins leere...
Deine Batch tut schon etwas, nur ob es das ist was du dir vorstellst?
Gruß,
Peter
Hallo.
Es gibt ein Kommandozeilentool, das genau das macht, was Du möchtest. Vielleicht siehst Du Dir mal an, wie dieses Tool vorgeht und arbeitet, das Tool heißt "delage32":
http://www.horstmuc.de/wbat32d.htm
Viele Grüße
von
departure69
Es gibt ein Kommandozeilentool, das genau das macht, was Du möchtest. Vielleicht siehst Du Dir mal an, wie dieses Tool vorgeht und arbeitet, das Tool heißt "delage32":
http://www.horstmuc.de/wbat32d.htm
Viele Grüße
von
departure69
Hallo,
LG
Kann man den Log statt in einer Txt zuschreiben, lieber per Mail versenden?
"smtpsend" kann das. Das verschickt den Inhalt einer z.B. Logdatei in das Textfeld einer E-Mail. Bau diese Befehlszeile in dein Script ein:smtpsend.exe -f[Absender] -t[Empfänger] -h[Mailserver] -s[Betreff] -i[Datei]
... Tool heißt "delage32":
Ich schließe mich der Meinung von departure69 an. Hatte ich schon im Einsatz, tut was es machen muss.LG
Bordmittel gehen natürlich auch immer ...
powershell -Executionpolicy ByPass -Command "Send-MailMessage -from user@domain.de -to user@domain.de -Subject 'Log' -Attachments 'C:\Logdatei.txt' -SmtpServer 'smtp.domain.de' -UseSSL -Credential (New-Object PSCredential('USERNAME',(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force)))"