Jump to content

EddieTheEagle

Members
  • Gesamte Inhalte

    7
  • Registriert seit

  • Letzter Besuch

Fortschritt von EddieTheEagle

Apprentice

Apprentice (3/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

0

Reputation in der Community

  1. OhHa, debuggen wäre dann meine nächste Baustelle. :confused: cscript.exe /x alte_dateien_loeschen.vbs Aufruf um MVS Debugger zu starten. Ausgabe des Debuggers, wenn ich das alles richtig gemacht habe. Aufrufliste: hier bleibt das Script stehen > VBScript global code [alte_dateien_loeschen.vbs] Zeile 4 Ausgabe: "cscript.exe" (Skript): "Skriptcode (C:\WINDOWS\system32\cscript.exe)" geladen. Das Programm "[14860] cscript.exe" wurde mit Code 0 (0x0) beendet. Ich lande im richtigen Verzeichnis. Ich teste auch gerade an meinem Home-PC, deshalb habe ich grade nicht das Problem mit anderen Benutzerkonten. in "\\Eddies-PC\l$\Backup\" liegt die von SQL täglich gesicherte Datenbankdatei, die zum Sichern täglich auf das NAS kopiert wird und dort 7 Tage verbleiben soll. Gruß Eddie
  2. Hi, erst mal Danke für dein Script. Leider unterstützt forfiles keine UNC Pfade. Aber ich werde mal versuchen dein Script anzupassen, fällt mir aber gerade nicht leicht, sind noch Bömische Dörfer. Das Sichern der SQL Datenbank bräuchte ich nicht, da der Job schon erledigt ist. Ich müsste halt die schon gesicherte Datenbank auf das NAS kopieren, was auch nicht das Problem ist. Mir ist noch nicht ganz klar, was dein Script macht. Pfade angepasst und als alte_dateien_loeschen.vbs gespeichert. 'Script zu löschen von Dateien mit bestimmten Dateiendung und wenn Dateien älter als X Tage sind. Dim fso, folder, files, sFolder, sFolder2, sFolderTarget, objFile, strDateiname Set fso = CreateObject("Scripting.FileSystemObject") 'location of the database backup files sFolder = "\\Eddies-PC\l$\Backup\" sFolder2 = "\\Eddies-PC\l$\Backup\JOBS\" Set folder = fso.GetFolder(sFolder) Set files = folder.files 'used for writing to textfile - generate report on database backups deleted Const ForAppending = 8 Const ForWriting = 2 'Prüfen ob es die Log.txt schon gibt, wenn nein, erstellen und gleich wieder schliessen. 'Ansonsten wird der Zugriff beim weiteren schreiben verweigert. If fso.FileExists(sFolder2 & "Log.txt") Then 'Datei ist vorhanden und wird gelöscht, anschließend wieder neu erstellt und geschlossen. fso.DeleteFile (sFolder2 & "Log.txt") Set strDateiname = fso.CreateTextFile(sFolder2 & "Log.txt") strDateiname.Close Else 'Datei ist NICHT vorhanden und wird neu erstellt und geschlossen. Set strDateiname = fso.CreateTextFile(sFolder2 & "Log.txt") strDateiname.Close End If 'Datei zum schreiben öffnen Set objFile = fso.OpenTextFile(sFolder2 & "Log.txt", ForWriting, TristateUseDefault) objFile.Write "================================================================" & vbCrLf & vbCrLf objFile.Write " Bericht über gelöschte Datenbank Backup Dateien " & vbCrLf objFile.Write " Datum: " & FormatDateTime(Now(), 1) & "" & vbCrLf objFile.Write " Uhrzeit: " & FormatDateTime(Now(), 3) & "" & vbCrLf & vbCrLf objFile.Write "================================================================" & vbCrLf Dim itemFiles, sDateiname, sEndung 'iterate thru each of the files in the database backup folder For Each itemFiles In files 'retrieve complete path of file for the DeleteFile method and to extract 'file extension using the GetExtensionName method sDateiname = sFolder & itemFiles.Name 'retrieve file extension sEndung = fso.GetExtensionName(sDateiname) 'check if the file extension is BAK If UCase(sEndung) = "BAK" Then 'check if the database backups are older than 7 days If DateDiff("d", itemFiles.DateCreated, Now()) >= 7 Then 'Delete any old BACKUP files to cleanup folder fso.DeleteFile sDateiname objFile.WriteLine "Datei gelöscht: " & sDateiname End If End If Next objFile.WriteLine "================================================================" & vbCrLf & vbCrLf objFile.Close Set objFile = Nothing Set fso = Nothing Set folder = Nothing Set files = Nothing test.cmd und alte_dateien_loeschen.vbs liegt im gleichen Ordner @Echo off set /a stunde=%time:~0,2% set minute=%time:~3,2% set sekunde=%time:~6,2% cscript.exe alte_dateien_loeschen.vbs del \\192.168.178.50\home\test\*.bak @Echo off copy /V "\\Eddies-PC\l$\Backup\SQL_Datenbank.bak" "\\192.168.178.50\home\test\SQL_Datenbank-%date%-%stunde%_%minute%_%sekunde%.bak" hier der Aufruf als test.cmd, wobei jetzt alle *bak im Ordner \\192.168.178.50\home\test\ gelöscht werden, egal wie alt sie sind. Irgendwie auch klar mit dem del Befehl. Das script legt das log an, aber es wird keine Aktion reingeschrieben. Bin ein wenig verwirrt. Helft mir doch bitte auf die Sprünge. Gruß Eddie
  3. Hi, mit Robocopy scheine ich das nicht hinzubekommen. Also hab ich mal mit copy gearbeitet. Das funktioniert soweit. Wobei mir eine Lösung mit Robocpy doch besser gefallen würde. @Echo off set /a stunde=%time:~0,2% set minute=%time:~3,2% set sekunde=%time:~6,2% @Echo off copy /V "L:\My Virtual Machines\w2kws.zip" "Y:\test\w2kws-%date%-%stunde%_%minute%_%sekunde%.zip" SET DEST="Y:\test" forfiles /p %DEST% /s /m *.* /d -7 /c "cmd /c echo @file @fdate" > D:\tmp\deloldfiles.txt forfiles /p %DEST% /s /m *.* /d -7 /c "cmd /c del @file" Gruß Eddie
  4. "C:\WINDOWS\system32\robocopy.exe" "J:\backup" "Y:\test" /E
  5. Hi, das ging aber schnell :thumb1: Vielen Dank für die schnelle Hilfe. Mit Forfile klappt das schon mal super. Allerding werden auch Dateien im Unterverzeichniss gelöscht. Das müsste ich noch verhindern. Was mir auch noch nicht ganz klar ist, wie ich beim Sichern mit Robocopy das Datum anhängen kann, wobei es jetzt noch nicht mal mehr das Datum sein muss. Ich muss halt nur verhindern, das beim täglichen Backup die Sicherunng vom Vortag nicht überschrieben wird. Gruß Eddie
  6. Hallo zusammen, ich habe folgendes Problem. Einmal am Tag wird eine Sicherung einer SQL Datenbank durchgeführt. Diese möchte ich täglich durch einen Job auf ein NAS Laufwerk kopieren. Bist dahin nicht schwer, Robocopy macht das super. Jetzt würde ich aber an die Datei, die kopiert wird gerne das Datum anhängen. Die kopierte Datei soll 7 Tage im Zielordner verbleiben. Wenn Robocopy am 8. Tag wieder eine Sicherung durchfürt, soll die älteste Datei gelöscht werden, so das ich immer 7 Backups dieser Datei habe. Ich hoffe, ihr könnt mir helfen. Gruß Eddie
×
×
  • Neu erstellen...