Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Globales Statuslogfile von mehreren Skripten bearbeiten

Frage Entwicklung Batch & Shell

Mitglied: stuijg

stuijg (Level 1) - Jetzt verbinden

11.03.2011 um 14:38 Uhr, 2852 Aufrufe, 4 Kommentare

Robocopyjobs und deren Status in einer Datei immer abrufbar

Hallo,

folgende Situation. Ein Server verteilt per Batchskript/geplante Tasks Nachts auf viele andere Server.

Alle geplanten Tasks rufen ein Batchfile auf was mit 2 Parametern gesteuert wird.
Die Parameter sind einmal die IP Adressen und einmal die Namen der Server.

Der Aufruf ist als: C:\batch\sync.bat 10.0.0.5 Server_A >> C:\batch\sync\Server_A\Status.log

In diesem Skript sind mehrere Robocopyjobs (Synchronisationen, Kopiervorgänge und Abholvorgänge)
die hintereinander laufen.
Diese schreiben jeweils ein Log-File.
Sobald alle robocopy-jobs fertig sind lasse ich mir eine Zusammenfassung per blat.exe schicken.

Jetzt will ich das erweitern.
Komme ich jetzt morgens in Büro und will wissen ob noch was läuft muss ich folgendes machen:

RDP auf Server, Schauen welcher geplante Task läuft, In den Ordner gehen C:\batch\Server_A\Status.log, schauen welcher Robocopyjob läuft,
die Logdatei C:\batch\Server_A\copy_Projekte.log öffnen und schauen wo er hängt.

Das dauert mir zu lange und ist sehr umständlich.

Es soll möglich sein auf einen Blick zu sehen wo welcher geplante Task gerade ist.
Also mein Ziel:

Eine Datei (Status.txt) soll vorhanden sein. In der Sollte stehen:

Status Synchronisationen

Server_A aktuell:
Server_B aktuell:
Server_C aktuell:

Und hinter den Doppelpunkten soll vom jeweiligen geplanten Task stehen wo er gerade ist.
Ich hab mir das so vorgestellt, dass ich vor jedem robocopy Aufruf in der Batchdatei einfach ein Text erstellen lasse wie zum Beispiel:

echo "Ordner D:\Projekte wirdseit %datum% syncronisiert, Logfile C:\batch\Server_A\copy_Projekte.log" >> Und dieser Text soll dann nach "Server_A aktuell:" stehen

Sobald der Job vorbei ist soll anstelle "Ordner D:\Projekte wird seit %datum% syncronisiert, Logfile C:\batch\Server_A\copy_Projekte.log" dann
"Ordner D:\Aufgaben wird seit %datum% syncronisiert, Logfile C:\batch\Server_A\copy_Aufgaben.log" stehen

Zur Info:

Die Variable %datum% sieht bei mir so aus: %date:~-4,4%-%date:~-7,2%-%date:~0,2%-%time:~0,-9%%time:~3,-6%

Ich muss also in die Datei Status.txt zur stelle "Server_A aktuell:" und dann was anhängen. Das Problem wird wohl das überschreiben der Zeile sein.
Ist so was möglich? Also vielleicht den Rest der Zeile leeren wenn ein neuer Job anfängt und dann die neue Information schreiben?


Vielleicht ist das mal ne kniffligere Frage. Ich schaffs grad net.

Gruß Stuijg
Mitglied: mathe172
11.03.2011 um 15:37 Uhr
Hallo stuijg!

Versuch mal etwas in die richtung:
01.
set "Server=A" 
02.
set "Text=Text der hingeschrieben werden soll" 
03.
set "Status=C:\Status.txt" 
04.
REM ------------------ 
05.
(for /f "usebackq delims=:" %%A in ("%Status%") do (if "%%A"=="Server_%Server% aktuell" (echo.%%A: %Text%) else (echo.%%A)))>"%Status%"
Mathe172
Bitte warten ..
Mitglied: stuijg
15.03.2011 um 09:23 Uhr
Hallo Mathe172,

hmm leider nicht so wirklich.
Weil so wie das aussieht schreibt er bei "else" doch jedesmal die Datei neu. Damit wären doch die alten Informationen weg.
Auch schreibt er die Zeile unterhalb aller Zeilen neu und fügt neue Informationen vom gleichen Parameter immer neu hinzu.
Ich hätte gern, dass er das vorhandene löscht und/oder überschreibt.

Ich glaube ich muss mit Zeilennummern oder Zeilen arbeiten. Also im Pseudocode:
Wenn der %%A gleich ist mit einem Text ist, dann spring eine Zeile runter und
lösche die Zeile und schreibe %Text%

Gruß stuijg
Bitte warten ..
Mitglied: mathe172
15.03.2011 um 12:13 Uhr
Hallo stujig!

Theoretisch müsste es funktionieren, da die gesamte Ausgabe der Schleife auf einmal umgeleitet wird (siehe hier)

Mach es zur Sicherheit aber so wie hier (zweites Beispiel). Das sollte sich für deine Zwecke abändern lassen.

Mathe172
Bitte warten ..
Mitglied: stuijg
17.03.2011 um 12:56 Uhr
Danke,

das hilft mir. Une irgendiwe werde ich das Gefühl nicht los, dass alle Fragen die ich habe hier in diesem Forum schonmal gefragt wurde und
schon beantwortet wurden. Und zwar richtig richtig gut.

Gruß stuijg
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Outlook Formular aus öffentlichem Ordner bearbeiten (6)

Frage von runner-ralf zum Thema VB for Applications ...

Windows Server
gelöst Den Inhalt von mehreren Ordnern in einem Ordner anzeigen - geht das? (16)

Frage von muLio zum Thema Windows Server ...

Batch & Shell
String Zeichenpaare auslesen und bearbeiten (6)

Frage von ahstax zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...