Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch Ordner mit Zeitstempel erstellen und Datei hinein kopieren

Frage Entwicklung Batch & Shell

Mitglied: CHiLL3R

CHiLL3R (Level 1) - Jetzt verbinden

27.12.2014 um 21:58 Uhr, 1493 Aufrufe, 3 Kommentare

Hi,
hab hier grad so meine Probleme.
In der Batch soll ein Backup einer Datenbankdatei angelegt werden.
Es handelt sich um eine Redis-Datenbank mit einer dump.rdb
Wenn ich diese kopiere behält sie ihr ursprüngliches alter, welches nunmehr weit älter als 3 Tage ist.
Wenn ich nun nach dem erstellen des Backups noch alle Backups löschen möchte die älter als 3 Tage sind, wird logischerweise auch die neuangelegt gelöscht.
Nun dachte ich mir, ich erstelle einen Ordner unmittelbar vorm kopieren der rdb und schiebe die Kopie da hinein.
Dann kann ich ja im endeffekt alle Ordner älter als 3 Tage löschen.
Aber genau da steh ich nun wie der Ochse vorm Berg.
Die Batch enthält noch eine Menge mehr Funktionen wie Backups anderer Dateien und Gameserver stoppen bzw restart, deswegen poste ich hier nur die betreffenden Stellen...
Um den Ordner zu erstellen würde ich wie folgt vorgehen:

Um den Zeitstempel zu setzten:
01.
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a 
02.
set YYYY=%dt:~0,4% 
03.
set MM=%dt:~4,2% 
04.
set DD=%dt:~6,2% 
05.
set HH=%dt:~8,2% 
06.
set Min=%dt:~10,2% 
07.
set Sec=%dt:~12,2% 
08.
set date=%DD%_%MM%_%YYYY% 
09.
set time=%HH%_%Min%_%Sec% 
10.
set stamp=%DD%_%MM%_%YYYY%--%HH%_%Min%_%Sec%
Den Ordner erstellen:
01.
mkdir "%arma3srvpath%\%servername%\Backup\Backup_Datenbank\Backup_DB_%stamp%"
Normalerweise würde ich die Datei ja so kopieren/verschieben:
01.
copy "%arma3srvpath%\DB\dump.rdb" "%arma3srvpath%\%servername%\Backup\Backup_Datenbank\Zielordner\dump.rdb"
Zum Löschen einer File würde ich nun eintragen:
01.
Forfiles /P %arma3srvpath%\%servername%\Backup\Backup_Datenbank\ /M *.* /D -3 /C "cmd /c del /q @path"
Würde aber nichts bringen da ja die eben kopierte Datei schon älter als 3 Tage ist...

Zum Löschen eines Ordners mit Inhalt (glaube ich zumindest):
01.
erase %arma3srvpath%\%servername%\Backup\Backup_Datenbank\*.* /D -3 /C "cmd /c del /q @path"
Aber wie kann ich die Datei in den eben erstellten Ordner kopieren, wenn dessen Namen nicht feststeht (Backup_DB_%stamp%)?


Nochmal zusammenfassend:
Datei soll als Kopie gesichert werden
Kopien älter als 3 Tage gelöscht werden
Die Datei einfach umbenennen in dump_%stamp%.rdb bringt mir nichts, da die Datei ja trotzdem älter als 3 Tage

Wer hat nun einen netten Tip für mich wie ich das bewerkstelligen könnte, ich steh grad auf dem Schlauch....

MFG CH!LL3R

Mitglied: Endoro
28.12.2014 um 09:26 Uhr
Hey, die Idee mit dem Neuerstellen eines Ordners ist doch gut. Weshalb kennst du denn seinen Namen nicht? Außerdem beziehen sich die Funktionen von Forfiles doch auf das Datum der letzten Änderung, nicht der Erstellung.
forfiles
Gruß, Endoro
Bitte warten ..
Mitglied: CHiLL3R
28.12.2014, aktualisiert um 22:40 Uhr
Die kopierte File hat aber immer noch das selbe Datum wie die Original-Datei. Deswegen bringt Forfiles in diesem Falle nichts.
Habe ich ja getestet so wie ich es oben gepostet habe, dann wird bei JEDEM Backup die Datei gelöscht, ist also immer nur 1 File und zwar die neuste drin.
Ist eventuell so, weil es eben eine dump.rdb ist, das weiss ich nicht genau. Bei allen anderen Dateien geht es, eben nur nicht bei dieser rdb

Das mit dem Ordner macht mir eben auch so meine Probleme....
Ein Backup wird alle 3 Std ausgeführt und die Backups sprich Ordner sollen 3 Tage behalten werden. Somit hätte ich ja 24 Ordner.
Um diese vom Namen zu Unterscheiden und schneller zu sehen von wann ein Backup ist habe ich eben den "stamp" hinter den Namen gesetzt....

01.
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a  
02.
set YYYY=%dt:~0,4%  
03.
set MM=%dt:~4,2%  
04.
set DD=%dt:~6,2%  
05.
set HH=%dt:~8,2%  
06.
set Min=%dt:~10,2%  
07.
set Sec=%dt:~12,2% 
08.
set date=%DD%_%MM%_%YYYY% 
09.
set time=%HH%_%Min%_%Sec%  
10.
set stamp=%DD%_%MM%_%YYYY%--%HH%_%Min%_%Sec% 
11.
mkdir "%arma3srvpath%\%servername%\Backup\Backup_Datenbank\Backup_DB_%stamp%"
Damit heisst ja der Ordner zb.: Backup_DB_28_12_2014--22_15_33, wenn er am 28.12.2014 um 22:15 Uhr und 33 Sekunden erstellt wird.
Da der Wert von %stamp% sich ja ändert, ändert sich bei jedem Backup ja auch der Name des erstellten Ordners.
Deshalb weiss ich nicht wirklich, wie ich die Datei genau in diesen Ordner einfüge...
Könnte mir vorstellen das es in etwa so geht:
01.
copy "%arma3srvpath%\DB\dump.rdb" "%arma3srvpath%\%servername%\Backup\Backup_DB\Backup_%stamp%\dump.rdb"
Wird damit (...\Backup_DB\Backup_%stamp%\dump.rdb) denn automatisch zb der Ordner "Backup_28_12_2014--22_15_33" erstellt, wenn er nicht existiert?
Oder gibt es eine möglichkeit zu sagen:
Kopiere die File in den NEUSTEN Ordner, welcher sich im Ordner %arma3srvpath%\%servername%\Backup\Backup_Datenbank\ befindet?

Für den Moment habe ich es so gelöst, das ich eine "touch.exe" in den System32-Ordner gepackt habe und in der Bat folgendes ausführe:
01.
copy "%arma3srvpath%\DB\dump.rdb" "%arma3srvpath%\%servername%\Backup\Backup_DB\dump_%stamp%.rdb" 
02.
touch "%arma3srvpath%\%servername%\Backup\Backup_DB\dump_%stamp%.rdb"
Damit wird der dump_...rdb ein neues datum verpasst.
Allerdings hat mich erstens der Ehrgeiz gepackt, es auch ohne diese touch.exe zu verwirklichen und zweitens fühle ich mich nicht wirklich wohl dabei, einer exe im system32 meines Roots zu vertrauen...
Ich hoffe man erkennt, worauf ich hinarbeite, versteh selber grad net so, was ich da von mir gebe

Mit freundlichen Grüßen CH!LL3R
Bitte warten ..
Mitglied: Endoro
29.12.2014 um 01:03 Uhr
Ehrlich gesagt verstehe ich das Problem nicht. Wenn du aktuell einen Ordner erstellst kennst du seinen Namen und den Zeitstempel. Worin besteht denn die Schwierigkeit, in den Ordner die einzige geeignete Datei zu schieben und dann alle Ordner älter drei Tage samt der jeweils darin steckenden Datei zu löschen? Dann hast du eben 24 Ordner, die brauchen kaum Platz und fressen kein Brot
Gruß, Endoro
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordner erstellen ll Datei hinein kopieren
Frage von heyaliceBatch & Shell1 Kommentar

Hallo zusammen, ich möchte den Ordner "Vorlagen_Test" unter Downloads im Ordner "Test" erstellen und die Datei "Test.docx" hineinkopieren. Allerdings ...

Batch & Shell
Batch vergleiche Dateien mit Zeitstempel
gelöst Frage von Streuner1Batch & Shell5 Kommentare

Hallo, ich möchte mit einer batch in einem Ordner Dateien mit einem Zeitstempel suchen, vergleichen, kopieren und löschen. Möglichkeiten: ...

Batch & Shell
Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren
gelöst Frage von getmovingBatch & Shell3 Kommentare

Hallo, ich brauche eine einfache Batch-Datei für Windows, die alle Dateien in einem Ordner bearbeitet. Es sollen alle jpg-Dateien, ...

Batch & Shell
Batch Datei zum Kopieren aktueller Dateien erstellen
gelöst Frage von daniel011Batch & Shell5 Kommentare

Hallo, ich möchte eine Batch Datei erstellen, mit der ich Dateien von einem Ordner in einen anderen kopieren kann. ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 3 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...