winget
Goto Top

Dateien von Server A auf Server B kopieren und auf Server B eine ein Protokol Datei mit Datum und Zeit erzeugen.

Hallo zusammen,
ich möchte Dateien von einem server z.B. A zu dem dem Server B kopieren und dabei soll eine LOG-Datei (Text-Datei mit Datum und Zeit) was Kopiert wurde.
Auf dem Server A sollen die Dateien gelöscht werden. Das soll mit einer Batch CMD Befehl passieren.
Vielen Dank

Hie eine kurze Beschreibung

Von hier zu Kopieren
\\SERVER_A\COPY_FILES\

Nach:
\\SERVER_B\SAVE_FILES\


Erzeuge LOG File mit den kopierten Files nach dem MUSTER (LOG_JJMMDD_DATUM.txt) auf dem SERVER B
z.B nach \\SERVER_B\logfiles


Lösche kopierte Files auf dem SERVER_A

Content-Key: 149809

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

Printed on: April 26, 2024 at 21:04 o'clock

Member: Breuwolf
Breuwolf Aug 26, 2010 at 16:07:41 (UTC)
Goto Top
jau da fällt mir nur robocopy oder synctoy ein, in deinem Fall würde ich Synctoy empfehlen...weil grafisch und recht einfach beides von Microsoft
Member: TheJoker2305
TheJoker2305 Aug 26, 2010 at 16:42:29 (UTC)
Goto Top
@echo off
set datum=time(now,yymmtt)
copy \\SERVER_A\COPY_FILES\*.* \\SERVER_B\SAVE_FILES\ >> \\SERVER_B\logfiles\%%datum%%.txt
del /S \\SERVER_A\COPY_FILES\*.*


Die %% müssen nur in einer Batchdatei verwendet werden (am CMD Prompt genügt eins "%")
Member: winget
winget Aug 26, 2010 at 17:38:27 (UTC)
Goto Top
Hallo TheJoker2305,
genau das suche ich.

Es funktioniert bis auf die LogDatei.
Diese bekomme ich auch aber unter dem Name %datum%.txt
Member: Biber
Biber Aug 26, 2010 at 17:43:12 (UTC)
Goto Top
Moin TheJoke2305,

Zitat von @TheJoker2305:
@echo off
set datum=time(now,yymmtt)
copy \\SERVER_A\COPY_FILES\*.* \\SERVER_B\SAVE_FILES\ >> \\SERVER_B\logfiles\%%datum%%.txt
del /S \\SERVER_A\COPY_FILES\*.*

Interessant ..
Ich bin immer beeindruckt von Menschen, die mehr als 5 Sprachen fliessend sprechen in einem Satz.

Magst du eventuell noch mal drübergucken,,, es sieht ein bisschen so aus, als wärest du vielleicht durch irgendeine matschig-in-der-Birne-machende "Heute 20% auf alles - ausser Biernahrung"-Baumarktwerbung etwas abgelenkt gewesen.

@winget
Im Bereich "Batch & Shell"/Anleitungen findest du auch ein oder zwei Tutorials zu den Themen "Dateien mit Datumszusatz im Namen sichern."

Oder einen Moment warten, bis TheJoke2305 die kleinen Flüchtigkeitsfehler rausgeflöht hat.

Grüße
Biber
Member: bastla
bastla Aug 26, 2010 at 17:45:25 (UTC)
Goto Top
Hallo winget!

Jetzt bin ich aber überrascht (nicht von der Tatsache, dass - auch in einem Batch - für eine "gewöhnliche" Variable nur je ein Prozentzeichen an Anfang und Ende ausreicht): Die Zeile 2 hätte ich unter Batch eigentlich für Wunschdenken gehalten und mich daher mit etwas in der Art abgeplagt:
set "datum=%date:~-2%%date:~-7,2%%date:~-10,2%"
Falls Du übrigens beim Löschen nicht nach Deiner ausdrücklichen Zustimmung gefragt werden möchtest: "del" kennt auch einen Schalter "/q" face-wink ...

@ TheJoker2305
Ich fände es sinnvoll, bei nicht getesteten Code-Schnipseln auf diesen Umstand hinzuweisen ...

Grüße
bastla
Member: Biber
Biber Aug 26, 2010 at 17:48:22 (UTC)
Goto Top
Nein, winget,

Zitat von @winget:
genau das suche ich.

Es funktioniert bis auf die LogDatei.

Nein, das suchst du bestimmt nicht.
Denn auch wenn der Zielserver NICHT erreichbar ist werden unabhängig vom Kopier-Erfolg alle Quelldateien gelöscht.

Bitte NICHTS anfassen... warte, bis TheJoker2305 editiert hat.
Sein Ansatz ist ja okay... aber den kann ich so ohne Korrektur ohnehin nicht stehen lassen im Bereich "Batch & Shell".

Grüße
Biber

[edit] ..und ergänzend zu bastla:
"@TheJoke2305: Ich fände es sinnvoll, bei nicht getesteten Code-Schnipseln auf diesen Umstand hinzuweisen ..."
Und bitte nicht nur schreiben "Klinisch getestet" wie bei der Zahnpasta... sondern auch, mit welchem Ergebnis. face-wink
[/edit]
...wenn einer schon den Nick "Teekasper" wählt....
Member: winget
winget Sep 01, 2010 at 11:10:15 (UTC)
Goto Top
Hallo Leute,
hier ist die Lösung:
@echo off
set datum=%date:~-4%%date:~-7,2%%date:~-10,2%
set zeit=%time:~0,2%%time:~3,2%%time:~6,2%
copy \\SERVER_A\COPY_FILES\*.* \\SERVER_B\SAVE_FILES\ >> \\SERVER_B\logfiles\%datum%_%zeit%.txt
del /S \\SERVER_A\COPY_FILES\*.*


Oder:
@echo off
set datum=%date:~-4%%date:~-7,2%%date:~-10,2%
set zeit=%time:~0,2%%time:~3,2%%time:~6,2%
move \\SERVER_A\COPY_FILES\*.* \\SERVER_B\SAVE_FILES\ >> \\SERVER_B\logfiles\%datum%_%zeit%.txt
Leider ist nicht sichergestellt, wenn Server_B nicht erreichbar ist, die Dateien auf Server_A gelöscht zu werden.

Die Sachen mit dem Datum und Zeit habe ich hier gefunden:
http://www.computing.net/answers/programming/log-file-date-and-time/181 ...
http://www.libe.net/themen/BATch-Befehle.php

Viele Grüße
winget

[Edit Biber] Code-Tags nachgezogen [/Edit]
Member: Biber
Biber Sep 01, 2010 at 11:30:32 (UTC)
Goto Top
Moin winget,

Leider ist nicht sichergestellt....
Okay, sicherstellen lässt sich in der IT gar nichts, sonst würden wir nicht alle davon leben können.
Aber:

im Fall a) mit auseinandergezogenem MOVE (als erst COPY und dann DEL) könntest du theoretisch
...
..
..
..
IF NOT ERRORLEVEL 1 del /S \\SERVER_A\COPY_FILES\*.*

Und im Fall b) kann bei näherer Betrachtung nix schiefgehen...
Zumindest nichts, was ein erfahrener ITler dem Kunden gegenüber als Projektrisiko bezeichnen würde.

Grüße
Biber
Member: bastla
bastla Sep 01, 2010 at 11:37:58 (UTC)
Goto Top
wäre dann doch nicht so gut (verglichen mit einer "&&"-Verknüpfung) ... face-wink

Grüße
bastla
Member: Biber
Biber Sep 01, 2010 at 11:59:33 (UTC)
Goto Top
Moin bastla,

okay, im Detail hätte diese Skizze vielleicht noch Potentiale... face-wink

Aber ich war gedanklich ohnehin schon mehr bei der MOVE-Variante... wenn die doch nun schon erfunden wurde in Redmond...

Grüße
Biber