Skip to content


Диагностика сетевых проблем

Любой сисадмин рано или поздно сталкивается с ситуацией, когда юзер, который обращается с жалобами на проблемы, весьма далек от технических нюансов (классическая ситуация – какая-то блондинка, максимально подробное описание проблемы у которой сводится к "инет не работает"). Вот для таких случаев может пригодится нижеприведенный сценарий, результат работы которого юзер каким-то образом должен передать админу.

  1. set cur_time=%time:~0,8%
  2. set cur_date=%date%
  3. set f=result.txt
  4. set TMP=defgate.rsl
  5. set STEPS=8
  6.  
  7. echo Please wait a few minutes. Diagnostics in progess...
  8. echo %cur_time% %cur_date% >> %f%
  9. ipconfig /all >> %f%
  10. echo Step 1 of %STEPS% completed.
  11. tracert -d 195.214.195.105 >> %f%
  12. echo Step 2 of %STEPS% completed.
  13. tracert -d -h 7 avz.org.ua >> %f%
  14. echo Step 3 of %STEPS% completed.
  15. tracert -d -h 7 mail.ru >> %f%
  16. echo Step 4 of %STEPS% completed.
  17. route print >> %f%
  18. echo Step 5 of %STEPS% completed.
  19. netstat -b >> %f%
  20. echo Step 6 of %STEPS% completed.
  21. netsh diag show ieproxy >> %f%
  22. echo Step 7 of %STEPS% completed.
  23. netsh diag show gateway > %TMP%
  24. FOR /F "skip=3 tokens=3" %%I IN (%TMP%) DO (
  25.         ping -n 50 %%I >> %f%
  26.         route print %%I >> %f%
  27.         goto END
  28. )
  29. :END
  30. erase %TMP%
  31. echo Diagnostics complete. Please, send the file %f% to support team.

Особенно заслуживает внимания конструкция

  1. FOR /F "skip=3 tokens=3" %%I IN (%TMP%)

которая представляет собой некоторый аналог связки команд tail и awk (или cut) в Unix-системах. Ключ skip=3 означает, что в файле %TMP% будет пропущено первые 3 строки, а tokens=3, означает, что в параметр цикла %%I будет подставлена 3-яя по счету подстрока в 4-ой строке файла (подстроки по умолчанию разделяются пробелами). Так что даже не имея под рукой любимого bash-а, в Windows можно как-то выкрутиться, всего-то почитав хелп "for /?" :)

Posted in Windows.


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Харон says

    впечатляет :)
    Лично я обломался ковыряться с командным интерпретатором, когда понял, что JScript и VBScript намного мощнее. А теперь еще и PowerShell есть. Например, в JScript можно этот вывод сохранить в какой-то файл, который потом переслать электронной почтой через ActiveX компонент Аутлука Экспресс. Не надо пугаться слова ActiveX, это очень просто, буквально несколько строк.

  2. Добрый сисадмин says

    На компы таких "блондинок" ставлю UltraVNC, ибо подругому с ними уже устал. :) Делаю все не уходя со своего места.

You must be logged in to post a comment.