Backup per Batch Datei
Hallo liebes Forum,
da meine erste Frage so mega gut funktioniert hat versuche ich es gleich mit einer zweiten.
Ich habe auf einem Server Datenbanken, die ich gerne auf einen exteren FTP schieben will. Dies soll einmal am Tag mit dem gesamten Backup Verzeichnis geschehen und er soll 7 Tage auf dem Server vorhalten und ältere Ordner wieder löschen.
Das folgende Script hat jahrelang gut funktioniert - und auf einmal aufgehört zu arbeiten. Zumindest in meiner Wahrnehmung :
ALs Antwort bekomme ich den Screenshot. Das script legt den aktuellen Tag immer an. Es scheint aber im Datum einen Fehler zu geben.
Hat jemand eine Idee, was hier falsch ist?
da meine erste Frage so mega gut funktioniert hat versuche ich es gleich mit einer zweiten.
Ich habe auf einem Server Datenbanken, die ich gerne auf einen exteren FTP schieben will. Dies soll einmal am Tag mit dem gesamten Backup Verzeichnis geschehen und er soll 7 Tage auf dem Server vorhalten und ältere Ordner wieder löschen.
Das folgende Script hat jahrelang gut funktioniert - und auf einmal aufgehört zu arbeiten. Zumindest in meiner Wahrnehmung :
@echo off
echo haenge x: an ...
NET USE x: /USER:[USERNAME] \\[FOLDER] ["PASSWORT"]
echo ermittle datum und wochentag ...
for /f "Tokens=1" %%i in ('unixdate +%%Y-%%m-%%d-%%H-%%M') do set dtt=%%i
for /f "Tokens=1" %%i in ('unixdate +%%u') do set dw=%%i
echo loesche altes backup vom Wochentag %dw% ...
rd X:\%dw% /S /Q
echo erstelle backup verzeichnis vom Wochentag %dw% ...
mkdir x:\%dw%
mkdir x:\LOGS
cd X:\LOGS
echo kopiere Daten ...
xcopy /E /H /I /Y "E:\Backups" "x:\%dw%\fms" > X:\LOGS\backup-%dtt%.log
echo warte 15 sec ...
timeout 15
echo henge X: aus ...
NET USE x: /delete /yes
ALs Antwort bekomme ich den Screenshot. Das script legt den aktuellen Tag immer an. Es scheint aber im Datum einen Fehler zu geben.
Hat jemand eine Idee, was hier falsch ist?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 31044387668
Url: https://administrator.de/contentid/31044387668
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
9 Kommentare
Neuester Kommentar
Hier findest Du einige gute Vorlagen dafür. Musst Du nur noch integrieren.
https://stackoverflow.com/questions/11385030/batch-timestamp-to-unix-tim ...
Letztes Posting hat auch ein Download zur (Unix)date.exe , aber definitiv keine Empfehlung von mir da ich es nicht kenne und es auch ohne eine separate exe machbar ist.
Oder wenn Du Glück hast kommt der @13034433319 noch mal zum Freitag und serviert Dir das auf dem Silbertablett
Trommel
https://stackoverflow.com/questions/11385030/batch-timestamp-to-unix-tim ...
Letztes Posting hat auch ein Download zur (Unix)date.exe , aber definitiv keine Empfehlung von mir da ich es nicht kenne und es auch ohne eine separate exe machbar ist.
Oder wenn Du Glück hast kommt der @13034433319 noch mal zum Freitag und serviert Dir das auf dem Silbertablett
Trommel
Im falschem Arbeitspfad ausgeführt oder fehlendes Programm "unixdate" ...
Das braucht es aber nicht, den aktuellen Timestamp "locale unabhängig" kannst du auch mit Bordmitteln generieren
Wochentag bekommst du auch so
Gruß
Das braucht es aber nicht, den aktuellen Timestamp "locale unabhängig" kannst du auch mit Bordmitteln generieren
@echo off & setlocal ENABLEDELAYEDEXPANSION
for /f %%a in ('wmic path win32_Localtime get Year^,Month^,Day^,Hour^,Minute^,Second /value ^| findstr .') do set /a %%a
for %%a in (month day hour minute second) do set "tmp=0!%%a!" &set "%%a=!tmp:~-2!"
set "timestamp=%Year%-%Month%-%day%-%Hour%-%Minute%"
echo %timestamp%
for /f "delims=" %%a in ('powershell -EP Bypass -C "get-date -F dddd"') do set weekday=%%a
echo Heute ist %weekday% :-)
Gruß
Zitat von @ChristianVenne:
Kannst Du mir noch einen Tip geben, wie ich jetzt genau 7 Tage abziehe. Will sagen, dass er es auch richtig macht, wenn ich am 2024-06-03 die sieben Tage abziehe um auf auf den 2024-05-27 zu kommen.
Kannst Du mir noch einen Tip geben, wie ich jetzt genau 7 Tage abziehe. Will sagen, dass er es auch richtig macht, wenn ich am 2024-06-03 die sieben Tage abziehe um auf auf den 2024-05-27 zu kommen.
for /f "delims=" %%a in ('powershell -EP ByPass -C "(get-date).AddDays(-7).toString('yyyy-MM-dd')"') do set otherdate=%%a
echo %otherdate%
Tippfehler korrigiert...
Lerne besser gleich Powershell, damit kannst du vieles wesentlich einfacher und effizienter abfrühstücken, Die Zeiten von Batch sind schon lange gezählt.