2017-07-22 1 views
0

Nous avons un problème de "déconnexion de base de données intermittent" (peut trouver ce message dans le journal d'application) et actuellement je trouve PID manuellement et tuant (mais ne redémarre pas l'application pour éviter temps d'arrêt). /J'ai besoin d'aide pour rechercher la chaîne de déconnexion sur tous les journaux (journal lui-même contient le nom PID) et tuer le traitement en cours de pid.Trouver un avertissement particulier dans log et tuer PID avec le script de lot

J'ai créé un script mais il peut supprimer le fichier (s'il n'est pas verrouillé) mais je cherche une solution complète, donc la même chose peut être programmée sur le planificateur de fenêtres. est script ci-dessous actuellement j'ai créé (pas beaucoup utile mais je peux supprimer les journaux après avoir tué PID manuellement)

@echo off & setlocal 
set "MySearchString= Failed to connect to <Database server>" 
for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /s /M /c:"%MySearchString%" C:\ABCDE\temp\faulykernel\*.*') do del "%%~i" >> C:\ABCDE\temp\script\output\faultykernel.txt 
+1

Vous canalisant les résultats dir à findstr et aussi utilisez une recherche récursive avec une référence de fichier, dans ce cas l'entrée canalisée est ignorée et donc inutile. Vous redirigez la sortie du del, mais il n'y a pas de sortie sur le flux de sortie standard, juste une sortie d'erreur obtiendrait du texte mais pour l'attraper vous devez utiliser '2 >> filename' Sinon vous ne fournissez aucun détail sur la chaîne mais supprimez tous les fichiers contenant MySearchString. – LotPings

+0

Merci pour votre réponse rapide, En fait, je voulais obtenir le pid et tuer pid aussi (ayant une erreur de déconnexion de base de données) avec les fichiers journaux ... – Brajesh

+0

'pour/f" delims = "% a in ('findstr/smc: "% MySearchString%" * ') fait @ECHO del "% a" ' – Stephan

Répondre

0

findstr/s/M/c: »" C:. \ ABCD \ temp \ faulykernel * * > C: \ ABCD \ temp \ script \ sortie \ TEST.txt

pour/f "usebackq tokens = 1-3 delims = _ ,." %% un dans ("C: \ ABCD \ temp \ scripts \ output \ test.txt") faire (

TSKILL %%b 

) echo% sc%