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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 31044387668
Url: https://administrator.de/contentid/31044387668
Printed on: June 20, 2024 at 15:06 o'clock
9 Comments
Latest comment
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 @hempel noch mal zum Freitag und serviert Dir das auf dem Silbertablett![face-wink face-wink](/images/icons/fa/light/face-laugh-wink.svg)
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 @hempel 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.