derm1cha
Goto Top

Skript zur monatlich festgelegten Datensicherung - Hilfe

Hallo,

ich bin quasi noch Jungadmin und benötige Hilfe bei der Erstellung eines Skriptes zur Daten"sicherung" zu einem festen Zeitpunkt, da ich mit Skripterstellung in meiner Ausbildung und bisherigen Berufsleben keinen Kontakt hatte.

Es handelt sich dabei um 3 Ordner, in diese werden am Tag je nach Aufkommen mehrere Dateien geschrieben, diese haben immer einen fortlaufenden Namen.

Bsp.: Fehler_1.txt; Fehler_2.txt; .... usw.

Durch diese Festlegung wird am ersten des Folgemonats die erste Datei des vorherigen Monats überschrieben und geht somit quasi verloren =(.

Meine Lösungsidee ist folgende:

Skript erstellen welches über Aufgabenplanung zum letzten Tag des Monats zu einer festen Zeit ausgeführt wird und in einen Unterordner der jeweils oben genannten Ordner einen Ordner mit Datum erstellt.

Das Skript zur Erstellung der Ordner konnte ich per Recherche finden und testen: // muss noch um den Pfad an dem der Ordner erstellt werden soll erweitert werden


@echo off

REM wir bestimmen die Variable "Ordnername". Format: JJJJ-MM-DD

set Ordnername=%DATE:~-4%-%DATE:~-7,2%-%DATE:~-10,2%

REM Falls der Ordner bereits vorhanden ist, wird er nicht erneut erstellt

if exist %Ordnername% goto :bereitsvorhanden

REM Der Ordner wird erstellt

mkdir %Ordnername%

exit

:bereitsvorhanden

@echo "Das Verzeichnis ist bereits vorhanden!"

pause

exit

Nun kommt der Hacken, ich brauch Hilfe bei der Erstellung eines zweiten oder erweiterten Skripts welches dann den Inhalt aus einen der Ordner Bsp Ordner A in den nun erstellten Ordner Bsp Order A\Archiv\2019-04-30 verschiebt bzw. ausschneidet und einfügt.


Ich hoffe ich konnte mich verständlich ausdrücken und bin auf eure Hilfe gespannt.

Content-Key: 443646

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

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: SeaStorm
SeaStorm 24.04.2019 um 17:56:29 Uhr
Goto Top
hi

du kannst doch einfach den bisherigen Ordner umbenennen\verschieben und dann einen neuen mit dem ursprünglichen Namen erstellen.
Mitglied: chiefteddy
chiefteddy 24.04.2019 aktualisiert um 18:00:52 Uhr
Goto Top
Hallo.

copy -Befehl mit der Variablen %Ordnername% im Ziel und anschließendes Löschen der kopierten Datei mit del.

Vor dem Löschen kann man mit if exist dateiname überprüfen, ob die Datei auch wirklich im neuen Ordner vorhanden ist.

Jürgen

PS. Hier noch etwas Lektüre:

https://tagungen.tekom.de/fileadmin/tx_doccon/slides/127_Microsoft_Batch ...

http://download.knowware.de/batch.pdf

https://www.computec.ch/archiv/dokumente/windows/batch_fuer_einsteiger.p ...

https://www.it-zeugs.de/batch-skripte-dos-teil-1.html

https://www.script-example.com/themen/cmd_Batch_Befehle.php
Mitglied: St-Andreas
St-Andreas 24.04.2019 um 23:54:05 Uhr
Goto Top
Du führst das Skript täglich aus und bewegst alle vorhandenen TXT-Dateien in %Ordnername%.
Mitglied: mayho33
mayho33 25.04.2019 um 01:50:46 Uhr
Goto Top
Robocopy wäre für so einfache Aufgaben wie geschaffen.

Shadowcopy, incrementell bzw. Delta-Copy möglich, Ausschlüsse nach Extension, nach Alter, usw. Alles Möglich.

Als Scheduled Task laufen lassen und gut ists.
Mitglied: DerM1cha
DerM1cha 25.04.2019 um 11:03:58 Uhr
Goto Top
robocopy klingt viel versprechend,

damit hab ich aktuell hin bekommen den kopier Vorgang zu erstellen nun ist mir aber eingefallen/aufgefallen das es besser wäre wenn ich die Aufgabe umbiege und zwar wie folgt

die Aufgabe / Job muss am besten täglich laufen da wenn er nur am Monatsende läuft und nicht funktioniert besteht ein höheres Ausfall Risiko / Verlust Risiko der Daten

somit muss am ersten bis letzten Tag des Monats die Daten in einen Ordner kopieren der als Namen das Jahr und Monat hat

ich vermute das ich da nun mit einer variable arbeiten muss ... die dann diese Informationen mitnimmt

Kann da mir noch mal jmd helfen ?
Mitglied: SeaStorm
SeaStorm 25.04.2019 aktualisiert um 11:08:43 Uhr
Goto Top
verschiebe einfach täglich alle Daten die älter als 1 Tag sind. Parameter "/MINAGE"
Mitglied: DerM1cha
DerM1cha 25.04.2019 um 11:29:44 Uhr
Goto Top
Weist du wie der Parameter ist damit nur die Daten kopiert werden die im Zielverzeichnis nicht vorhanden sind ?

Ich weis das dein Parameter das im Prinzip auch macht aber eben nur wenn dazwischen auch 1 Tag Abstand ist mit dem von mir gesuchten könnte ich im Bedarfsfall das mehrmals am selben Tag machen...
Mitglied: SeaStorm
SeaStorm 25.04.2019 aktualisiert um 11:53:43 Uhr
Goto Top
das macht es grundsätzlich. dazu brauchst du keinen extra parameter

https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...


Das ist ja aber eh nur interessant, wenn du die dateien KOPIERST.
Wenn du sie VERSCHIEBST, dann gibts die danach im Source-ordner ja eh nicht mehr
Mitglied: DerM1cha
DerM1cha 25.04.2019 um 15:29:23 Uhr
Goto Top
Vielen dank an alle die mit geholfen haben, ich hab es nun wie folgt gelöst:

echo %date%
set jahr=%date:~-4%
set monat=%date:~-7,2%
set sortdate=%jahr%-%monat%

cmd c/ robocopy \\Server\Freigabe\Unterordner\Unterordner\Unterordner\Unterordner\Quellordner \\Server\Freigabe\Unterordner\Únterordner\Unterordner\Unterordner\Unterordner\Zielordner\%sortdate

ich hoffe ich es hier nun richtig angepasst =)

auf dem Netzlaufwerken und vorher lokal hat es problemlos funktioniert

Nun wird es auf dem Server eingepflegt als täglicher Job und spätestens nächste Woche weis ich dann ob es auch Monatsübergreifend funktioniert

Am Ende kommt doch alles anders, in dem Sinne bedanke ich mich bei euch allen und sofern nichts mehr von mir zu hören ist bin ich entweder verbrannt oder die geplante Aufgabe erfüllt ihren Job =)
Mitglied: DerM1cha
DerM1cha 26.04.2019 um 09:45:55 Uhr
Goto Top
=(

irgendwo muss ein Krümel quer hängen ich verstehe es nicht

ich hab diesen Vorgang lokal getestet mit zwei Ordnern und Inhalten geht

ich hab es mit zwei Freigaben getestet auf die ich mit meinen normalen Netzwerk User Konto Zugriff habe, sprich eine Freigabe meiner Abteilung und meinen Home Ordner und auch da geht es

anschließend habe ich die Pfade auf die Ordner angepasst die der Grund für das Skript sind und bin davon ausgegangen das es klappt stattdessen gibt er nun den Inhalt der bat in einen cmd aus

und der Server auf dem die liegt hat gestern den Job erfolgreich ausgeführt aber ohne das Daten geschrieben wurden geschweige den der ordner erstellt wurde

wo, wie, was ? hab ich falsch gemacht ?

ich hab die bat die für die Sicherung ist dann auch bei mir als admin gestartet und auch da zeigt er mir nur den Inhalt an anstatt was zu machen ebenso habe ich die bat auf dem Server ausgeführt usw überall das Problem er zeigt nun an anstatt zu arbeiten
Mitglied: SeaStorm
SeaStorm 26.04.2019 um 09:50:16 Uhr
Goto Top
und was _genau_ steht jetzt in der bat ?
Mitglied: 139374
139374 26.04.2019 aktualisiert um 09:56:58 Uhr
Goto Top
Wundert mich nicht, schau hier mal ganz genau hin
cmd c/ robocopy
Außer das es falsch ist ist das extra cmd auch noch überflüssig und hier
%sortdate
Fehlt natürlich auch noch was ...😁

Außerdem ist das Extrahieren der Datum Werte nicht sprachunabhängig ausgeführt. Wenn du also ein System mit englisch formatierter Locale hast, aus die Maus.

Also besser noch mal einen Grundkurs Skripting besuchen.
Mitglied: DerM1cha
DerM1cha 26.04.2019 aktualisiert um 10:04:02 Uhr
Goto Top
?

das mit dem cmd ok wie gesagt hab das vorher nie gemacht dann lass ich das jetzt weg...

beim sortdate hab ich das hier ausversehen vergessen in der bat steht es drinne

der Server auf dem es liegt ist aber deutsch durchkonfiguriert

kannst du deine Gedanken etwas ausführlicher mitteilen ? steht echt auf dem schlauch ...

skript


ich hab das mal angehangen und den Pfad durch Textfelder dargestellt
Mitglied: SeaStorm
SeaStorm 26.04.2019 aktualisiert um 10:06:02 Uhr
Goto Top
wtf ...

führe NUR den robocopy aus. auch ohne das c/ ...

wenn, dann wäre das "cmd.exe /c BEFEHL"
du bist aber schon in einer cmd wenn du ne batch ausführst. entsprechend ist das sinnlos das da noch mal anzugeben
Mitglied: DerM1cha
DerM1cha 26.04.2019 um 10:12:45 Uhr
Goto Top
das wtf... naja gut kann deine Reaktion verstehen

aber ich sags nochmal habe das vorher nie gemacht


hab das nun angepasst und tada der fehler war offenbar layer 8 ....
blöd nur wenn man das selber ist

ich werde die bat nun austauschen und nächste Woche berichten beim händischen start gerade hat er sofort losgelegt

vielen dank für alle die mit gemacht haben
manchmal ist eben ein Vorschlaghammer notwendig um wissen hinein zu prügeln

schönes Wochenende
Mitglied: 139374
139374 26.04.2019 aktualisiert um 10:21:34 Uhr
Goto Top
Gut, wir warten schon sehr gespannt auf den nächsten Post von dir 😎.

Beim nächsten mal Thema hier in der Sendung

"Hilfe hab meine Daten geschreddert, wie kann ich sie wiederherstellen?" 😗