linuxxp
Goto Top

Text aus einer Datei in eine andere Datei kopieren

temporäre Log-Datei in Fehlermeldung übernehmen

Hallo liebe Administratoren und User dieses Forums,

ich habe eine vermutlich völlig simple Frage (HONK). Ich erstelle eine temporäre Log-Datei und prüfe ob in dieser ein Fehler auftritt. Tritt dieser Fehler auf, soll diese Datei nun in die Fehlermeldung übernommen werden.

Ablauf (ist)

-> temporäre Log-Datei
Frage (text [Fehlermeldung] enthalten)?
-> Nein - ENDE
-> Ja - Fehlerprotokoll mit zusätzlichen Funktionen (PING und TRACE) wird erstellt.

Ablauf (soll)

-> temporäre Log-Datei
Frage (text [Fehlermeldung] enthalten)?
-> Nein - ENDE
-> Ja - Inhalt der temporären Datei in Fehlerprotokoll eintragen ( zusätzliche Funktionen (PING und TRACE) wird erstellt).

Mir fehlt also nur der Befehl

Kopiere Text der Datei IP-pinging-tmp.log in die Datei TRACE**.log

Die Daten dieser temporären Datei werden für die Anlayse benötigt. Dieser Eintrag gehört zu meiner Anfrage PING und automatische Erstellung von Tracerouten

Danke für Eure Hilfe

mfg
Christian

Content-Key: 86295

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

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: 60730
60730 24.04.2008 um 10:17:17 Uhr
Goto Top
Mir fehlt also nur der Befehl

> Kopiere Text der Datei
IP-pinging-tmp.log in die Datei TRACE.log

moin,

copy /B P-pinging-tmp.log + TRACE.log error.log

wäre das was?
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 11:59:54 Uhr
Goto Top
Hallo Timo,

wenn ich in der Commandozeile (DOS-prompt) den Befehl test klappt es nicht, egal ob die Datei schon existiert oder nicht.

Wenn ich
 copy /B IP-pinging-tmp.log + >> TRACE.log 
teste bekomme ich nur die Ausgabe

1 file(s) copied.

an die TRACE.log angehängt.

WICHTIG: Der Inhalt der Datei IP-pinging-tmp.log soll EINGEFÜGT werden, vor und nach dem Kopieren des Inhalts (Zeilenzahl kann angegeben werden) stehen andere Angaben in der TRACE.log.

face-sad

mfg
Christian
Mitglied: 60730
60730 24.04.2008 um 12:13:54 Uhr
Goto Top
hi,

wo genau bist du in der pingserv.cmd?

:offline
@echo on
date /t > C:\PING-log\trace-%2-%1-%date%.log
time /t >> C:\PING-log\trace-%2-%1-%date%.log
echo %2 >> C:\PING-log\trace-%2-%1-%date%.log
ping %1 >> C:\PING-log\trace-%2-%1-%date%.log
tracert %1 >> C:\PING-log\trace-%2-%1-%date%.log

rem zuerst mal die .log in .txt umbenennen
ren C:\PING-log\trace-%2-%1-%date%.log C:\PING-log\trace-%2-%1-%date%.txt

Rem Nun die .txt mit der log zusammenführen
copy /b C:\PING-log\trace-%2-%1-%date%.txt + C:\PING-log\trace-%2-%1-%date%.log C:\PING-log\trace-%2-%1-%date%.log

rem die Txt brauchen wir nicht mehr
del /q C:\PING-log\trace-%2-%1-%date%.txt


net send [Rechnername] Ping auf %2 - IP %1 erfolglos - Bitte das Fehlerprotokoll unter C:\PING-log\ ansehen.
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 12:40:40 Uhr
Goto Top
Hallo Timo,

dein Weg funktioniert, auch wenn die Zeilenumbrüche dabei verloren gehen.

Geht das vielleicht auch Zeile für Zeile (Zeilenanzahl ist ja bekannt)?

Aber schon einmal Danke für die funtionierende Lösung.

mfg
Christian

Habe mal die Hilfe

help copy

getestes und mit
copy /a TRACE.log + test.log TRACE.log

kann die Datei direkt angehängt werden (leider immer noch ohne Zeilenumbrüche). Das spart die Umbenennung der TRACE.log in TRACE.txt und die Löschung der TRACE.txt.

Werde ich so schon einmal einsetzen.

mfg
Christian
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 12:50:22 Uhr
Goto Top
hi,

wo genau bist du in der pingserv.cmd?


Hallo Timo,

aktueller Stand der pingserv.cmd:
 @echo off

REM Datum in Variable Date schreiben
FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B  

REM Monat und Jahr als Variable MONAT schreiben
@for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set MONAT=%%c_%%b  

@echo on

echo ' >> C:\PING-log\%MONAT%\IP-pinging-%date%.log  
echo _____ naechster PING _____ >> C:\PING-log\%MONAT%\IP-pinging-%date%.log
date /t >> C:\PING-log\%MONAT%\IP-pinging-%date%.log
time /t >> C:\PING-log\%MONAT%\IP-pinging-%date%.log
echo %2 >> C:\PING-log\%MONAT%\IP-pinging-%date%.log
ping %1 >>C:\PING-log\%MONAT%\IP-pinging-%date%.log

ping -w 1111 %1 >C:\PING-log\IP-pinging-tmp.log
@echo off
findstr /c:"Request timed out" C:\PING-log\IP-pinging-tmp.log  
IF %ERRORLEVEL% == 1 goto end
IF %ERRORLEVEL% == 0 goto offline

:offline
@echo on
date /t >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
time /t >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
echo the ping Request timed out (more than 1.111 ms) at least once during last ping-request >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log


REM # # #  hier ist der Kopiervorgang eingebaut  # # #

copy /a C:\PING-log\%MONAT%\trace-%date%-%2-%1.log + C:\PING-log\IP-pinging-tmp.log C:\PING-log\%MONAT%\trace-%date%-%2-%1.log

REM # # #  ende des Kopiervorgangs  # # #


echo >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
echo additional ping Request (10 Pings) >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
echo %2 >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
ping -n 10 %1 >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
tracert %1 >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
echo _____  _____  _____ _____ >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
net send PUL40077 Ping auf %2 - IP %1 erfolglos - Bitte das Fehlerprotokoll unter C:\PING-log\%MONAT%\ ansehen.

:end
Mitglied: 60730
60730 24.04.2008 um 13:06:23 Uhr
Goto Top
HI,

dann mal so herum....

REM # # #  hier war der Kopiervorgang eingebaut  # # #
@echo . >> C:\PING-log\IP-pinging-tmp.log
type C:\PING-log\IP-pinging-tmp.log  >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
REM # # #  ende des ehemaligen Kopiervorgangs  # # #

edit
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 14:10:47 Uhr
Goto Top
Hallo Timo,

wofür soll denn der Punkt gut sein (wird am Ende der IP-pinging-tmp.log angehängt)? Oder sollte der Punkt am Ende jeder Zeile auftauchen?

Ansonsten ist das Ergebnis genau das gleiche (die IP-pinging-tmp.log wird ohne Zeilenumbrüche an die TRACE.log angehängt). Entsprechende Ergänzungen, die die Zeilenumbrüche mit übernehmen bietet
 type 
leider nicht an.

Sonst noch eine Idee?

mfg
Christian
Mitglied: 60730
60730 24.04.2008 um 14:24:07 Uhr
Goto Top
Hallo Timo,

wofür soll denn der Punkt gut sein?
Einmalig - um einen Zeilenschub (hab W2k - da macht er das) zu erzwingen.

Sonst noch eine Idee?

eine? *lach*

wo sagst du ist der Punkt? am Ende?
(die IP-pinging-tmp.log wird ohne Zeilenumbrüche an die TRACE.log angehängt). *grübel*

Dann war mein Edit ja doch falsch... (da hab ich das umgedreht.. )

@echo . >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log
type C:\PING-log\IP-pinging-tmp.log >> C:\PING-log\%MONAT%\trace-%date%-%2-%1.log

probiers mal so herum
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 14:52:02 Uhr
Goto Top
Sorry großer Meister face-wink

zum Testen habe mir eine IP-pinging-tmp.log in test.log umbenannt und mir eine TRACE.log mit dem Text
Testdatei

hier soll die temporäre PING-Datei eingebunden werden:

erstellt. Das Script läuft im Hintergrund ja permanent weiter (mit der copy /a Lösung).

Dein letzter Vorschlag hat den Punkt in einer eigenen Zeile ausgegeben, darunter noch immer als Text ohne Zeilenumbrüche den Inhalt des test.log.

MIST - habe gerade festgestellt, dass meine test.log schon keine Zeilenumbrüche enthält (wie DUMM von mir) :-#

Test jetzt nochmal... melde mich danach.

mfg
Christian
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 14:59:06 Uhr
Goto Top
STUPID!!!!

Hallo Timo,

habe die Zeilenumbrüche in die test.log eingefügt und siehe da, schon die copy /a tut es sauber.

Jetzt warte ich auf den nächsten Ping mit Zeitüberschreitung um zu testen, ob auch die IP-pinging-tmp.log mit Zeilenumbrüchen übertragen wird.

mfg
Christian
Mitglied: LinuxXP
LinuxXP 24.04.2008 um 15:08:24 Uhr
Goto Top
STUPID!!!!

Hallo Timo,

habe die Zeilenumbrüche in die test.log
eingefügt und siehe da, schon die copy
/a
tut es sauber.

Jetzt warte ich auf den nächsten Ping
mit Zeitüberschreitung um zu testen, ob
auch die IP-pinging-tmp.log mit
Zeilenumbrüchen übertragen wird.

mfg
Christian

Hallo Timo,

habe gerade eine pingserv mit einem NICHT antwortenden Server getestet, die IP-pinging-tmp.log wird sauber übernommen.

Danke.

Es bleibt also bei der copy /a Lösung, wie oben bereits gepostet. Der Fehler lag - wie üblich - vor dem PC (bzw. sitzt).

ein SuperDAU lässt grüßen

mfg
Christian