Архив рубрики: Утилиты

Лучшие практики для… chkdsk

imageЧем больше я работаю, тем больше мне становится ясным тот простой факт, что даже самая повседневная и простая на первый взгляд вещь, технология или утилита могут скрывать в себе небывалый простор для изучения. Ну, что-то вроде простейшего кекса, который прост пока не попробовать его испечь =)

То же самое оказалось возможным сказать про, например, chkdsk. Как думаете, нужно ли для этой команды знать что-либо помимо параметров командной строки? Ладно, если Вы не из Почемучек, то вряд ли. Или, возможно, мы не подумали о том, какое воздействие на наше окружение может оказать это “ничтожество”. К примеру, возьмем стандартную ситуацию: файлсервер рос и развивался вместе с организацией, пока, наконец, не пришла пора обзаводиться своими SLA и прочими атрибутами сервисного подхода Winking smile Вы, как старый, опытный камикадзе разумный человек, согласовали это самое SLA, учтя все, что можно и нельзя:

— время восстановления из резервных копий каждого набора информации и приоритет этого восстановления (без чего-то компания не может обойтись и пары часов, я что-то может обождать)

— время, необходимое для замены испорченного оборудования

— ну и все такое.

Но одним прекрасным днем том, на котором располагается около 500 миллионов мелких но нужных файлов помечается системой, как “грязный” и уходит после перезагрузки в глубокий chkdsk… Ваш SLA включал возможность этих 99 (!!!) часов простоя? Мой – нет =(

К счасть. и ситуация придуманная (для меня), так что у меня еще есть время на все эти “мелочи”, а теперь, после прочтения документа с названием “NTFS Chkdsk Best Practices and Performance”, еще есть и полезные мысли =)

Кстати, в Server 2012 будут некие крупные изменения во всем этом. Читаем и готовимся.

Реклама

>“Нюхаем” сеть без сниффера…

>

MC910216362[1]Частенько при решении разнообразных проблем приходится анализировать сетевой трафик. Обычно это требует установки какой-нибудь программы типа NetMon, WireShark или чего-нибудь еще в том же стиле. И все бы ничего, когда бы это было всегда возможно и эффективно. А что если “на том конце” какой-нибудь “продажный менеджер”, который в упор не желает этим заниматься? Или политика безопасности запрещает ставить дополнительное ПО на сервер? Да и вообще для одного раза ставить какую-то софтину – не очень многим нравится такая идея.
В общем, как все уже догадались, решение есть. Я тут недавно прочитал в одном из блогов среди других не менее замечательных вещей (этот блог входит в топ-5 моих любимых, если вообще не самый интересный для меня, кстати) совершенно чумовую статью, в которой есть решение для такой проблемы.
В кратце, Вам более не нужно ставить, скажем, NetMon на W7/2008 R2, чтобы захватить трафик. Это можно сделать с помощью встроенной утилиты, а именно netsh. Правда, Вам все еще понадобятся
1) права локального администратора на исследуемом компьютере
2) NetMon, чтобы проанализировать полученные данные, после того, как их сбор будет завершен. Но его Вы можете использовать на любом другом компьютере. 
Как это работает? Просто превосходно ;)
1) Начинаем сбор:
netsh trace start capture=yes tracefile=<PathToFile>

image
2) Потом воспроизводим проблему. Я запустил свой chrome (слишком много вкладок открыто в IE ;) ) и сходил на сайт www.microsoft.com.
3) Останавливаем:
netsh trace stop
image
Обратите внимание, что трассировка создала два файла: .etl and .cab. ETL это как раз тот, в котором записаны наши пакетики. Второй… Это то, что даже добавляет “чудесности” этому методу, но мы обсудим его в следующей статье. 
4) Открываем наш файл на любом компьютере с помощью Network Monitor:
image
Ой… Что это с нашими парсерами? Если взглянуть поближе, то мы увидим следующее: 
Process: Windows stub parser: Requires full Common parsers. See the «How Do I Change Parser Set Options(Version 3.3 or before) or Configure Parser Profile (Version 3.4)» help topic for tips on loading these parser sets.
Что ж, очевидно, некоторые парсеры не подключены. Давайте это сделаем, благо, это легко (да, я использую NetMon 3.4). Идем в tools->options
image
Смотрим на вкладку Parser Profiles:
image
И включаем профиль Windows нажав на нем правой кнопкой и кликнув опцию Set As Active:
image
И вот теперь все кристально ясно:
image
5) Ну итеперь делаем все, что нам нужно с помощью NetMon, например, посмотрим на DNS-запрос от имени Chrome:
image
Ну не здорово ли? Точно здорово, потому что мы еще не смотрели на .cab-файл, который содержит тонны полезной информации… Но для этого я отвел следующую статью.

>Секреты %systemroot%System32: defrag

>

Эта команда тоже, кажется, используется чем дальше, тем меньше. Частично, возможно, из-за того, что производительность современных компьютеров позволяет не беспокоиться о незначительной фрагментации, пока еще не слишком поздно она еще незначительная. Частично из-за того, что часть мифов о ней успешно прекратили свое существование. Но в основном потому, что нвчиная с VIsta дефрагментатор запускается автоматически раз в неделю. Ранее (во времена 9х) у нас был расчудесная GUI-программа, теперь у нас есть только утилита командной строки и весьма урезанный (без той самой чудесной визуализации статуса фрагментации: она была абсолютно бесполезная, но просто очень радовала глаз. Я даже думаю иногда, что именно из-за отсутствия этой визуальной магии теперь все меньше и меньше людей пользуется дефрагментацией, а не по описанным выше причинам ;) GUI для управления процессом.

В любом случае, запуск этой программы на регулярной основе означает, что у нас не так уж высок обычно процент фрагментации: 

clip_image001

И все-таки нам не хватает той самой магии =(

Как бы то ни было, если Вам не нравится, что этот “чертов компьютер управляет моими данными”, или Вы просто недостаточно удовлетворены  расписанием, то Вы можете отключить его с помощью программы dfrgui:

clip_image002

Тут же можно изменить время, когда она запускается, или еще сожно создать какое-нибудь сложное расписание в менеджере задач:

clip_image004

Вы даже можете создать скрипт, который управляет фрагментацией, повинуясь какой-то своей, одному ему ведомой логике. Скажем, зачем даже думать о запуске дефрагментатора, если Вы видите картину, навроде вот этой:

clip_image005

Для этого можно создать скрипт, который будет проверять, а есть ли фрагментация и насколько она существенна, дефрагментирует фрагментированное, если нужно, консолидирует свободное место время от времени, пляшет и танцует.

Я же, по правде говоря, вполне комфортно себя чувствую с настройками по-усолчанию, что не мешает мне, впрочем, помнить о существовании других вариантов.

>TextAnalysisTool.NET

>

imageВася Гусев затвитил сообщение о небольшом, но, кажется, вполне себе полезном инструменте: TextAnalysisTool.NET. Оно простое, но может оказаться полезным. По-сути, делает это инструмент не очень много: всего лишь ищет в файле разные строчки. Вы тоже подумали “кто написал такую хрень”? У нас есть findstr, не говоря уже о PoSh. Я тоже так думал, но решил дать программке маленький шанс, после чего обнаружил, что есть ситуации, в которых утилита просто прекрасно подходит:

  1. Поиск нескольких строк одновременно. С использованием всего, что названо выше, это не слишком удобно. С описываемой утилитой – вполне. 
  2. Вам нужно не только найти саму строку, но и увидеть, что ее окружает. 
  3. Нужно подправить строку поиска для большого файла. Когда для этого используется, скажем, findstr, она читает весь файл каждый раз. В моем случае (файл объемом 640MBбольше 2000000 строк) это занимает от 60 до 80 секунд. Так как TextAnalysisTool.Net не перечитывает при этом файл, то поиск новой строки отнимает не более 20 секунд. На PoSh, возможно, можно добиться такого же результата, но прибавляя еще первые два пункта мы все-таки отдадим пальму первенства по удобству нашей утилите.

Что может делать наш инструмент:

  • Открывать файлы (удивительно, не правда ли? =)). Так же можно их перезагрузить, если они меняются.

image

  • Сохранять и подгружать наборы фильтров. Может оказаться удобным, если Вы постоянно ищите одни и те же наборы данных. (наборы фильтров хранятся в XML, кстати, можете взглянуть на них)
  • Обычный поиск, как в Winword. Разве что можно искать с помощью.

image

  • Переключение отображения между полным текстом файла и только найденными строчками.

image

image

  • Пометить некоторые строки (просто выберите их и нажмите Ctrl+<цифра>) и потом Вы сможете быстро перейти к ним просто нажав цифру.

image

  • Создавать и редактировать фильтры, ради чего все-таки это и затевалось. Фильтр может содержать и обычные строки и регулярные выражения. Результат можно подкрасить. 

image

В общем, оно теперь содержится в моем арсенале ;)

>Секреты %SystemRoot%System32: compact + convert

>

Я достаточно занят в последнее время, потому сегодня всего лишь краткий обзор двух малополезных в настоящее время (но было время – эгегей!) утилит: compact и convert. Первая еще где-то используется, а вот вторая, как мне кажется, уже практически отмерла. Но тем не менее…

compact

Помните cipher? Для меня они всегда шли рядом: cipher шифрует, compact сжимает данные на NTFS. Нужно заскриптовать сжатие или разжатие данных или просто слишком лениво кликать в куче окошек? Тогда команда для Вас. Но, если серьезно, многие ли серьезно используют эту возможность? Она одна из самых нелюбимых мной, если честно. И все же, если оно Вам нужно – команда Вам поможет.

convert

А вот эту я не использовал уже очень долго. Правда, многие ли чейчас могут похватстаться системой, которую можно и нужно преобразовать в NTFS? Разве что какую-нибудь флешку. Но в свое время для меня это был хит: движение от Windows 9x к Windows 2000 или XP. Прийти к знакомым и вместо извлечения из загашника диска с Partition Magic и всяких прочих плясок просто набрать встроенную команду и – вуаля! Чувствовал себя Гуру ;) Так что, когда я обнаружил, что она все еще находится в составе моей W7, я решил почтить ее память. Впрочем, может все еще есть какое-то использование этой утилиты, о котором я не знаю – скажите мне, тогда =)

>Секреты %SystemRoot%system32: cipher

>

Следующая команда в списке редко вспоминается, пока не влетает пользователь с воплем “я сменил пароль и где теперь все мои зашифрованные данные!”. Знакомая ситуация? Мне не очень, но я слышал предостаточно ужастиков на эту тему. Резервное копирование ключей – ключ к спасению в данной ситуации (ну или агент восстановления). И с этим вполне может помочь наша команда. А еще с обновлением ключа шифрования на файлах. И с созданием ключа восстановления.

Про все это полно статей, однако, когда я решил взглянуть на утилиту поближе, я вдруг обнаружил для себя очередную новую функцию: добавив аргумент /W и имя какой-нибудь папки, мы уничтожим все данные, все еще содержащиеся в “пустом” месте на диске, содержащем эту папку (если папка это линк на другой диск, то будет зачищен этот самый “другой” диск). Что при этом происходит:

1) Создается папка EFSTMPWP:

2) В ней создается временный файли (или несколько)

image

3) Место в них заполняется нулями, потом единицами, а потом все это отполировывается случайными числами:

image

Каждый из этих шагов делается пока не заполнится все место на диске, потом все повторяется:

image

image

image

Разумеется, это достаточно длительная операция, особенно для больших дисков. Тем не менее, если бы я проектировал эту процедуру, то я бы сделал просто и со вкусом: в три прохода шифровал бы каждый свобоный кластер на диске с помощью случайного ключа. Впрочем, оно и к лучшему, что это был не я, процедура и так не короткая ;)

Да, кроме всего прочего, команда просит Вас закрыть все приложения, очевидно, чтобы затереть место и под временными файлами.

Что еще почитать:

cipher /?

http://technet.microsoft.com/en-us/library/cc771346(WS.10).aspx

http://support.microsoft.com/kb/295680

http://support.microsoft.com/kb/814599

>BITS и PowerShell

>

Вася Гусев меня пристыдил тем фактом, что я распространял знание о BITSAdmin, вместо соответствующих командлетов PowerShell. Что ж, в какой-то мере он был определенно прав:

  • 1) PowerShell великолепно самодокументирован

2) Писать скрипты на нем намнооого проще, чем в стандартном интерпретаторе комманд

3) Его при некоторых условиях может ыбть чуть проще использовать в некоторых базовых ситуациях типа “просто дай мне этот чертов файл”

4) Многие просто любят PoSh.

Потому я чуток почитал (Disclaimer: действительно “чуток”, потому если ниже есть ошибки, то прошу мне на них указать) и мне показалось, что задача, типа описанной мной в упомянутой статье должна решаться (и Вася тоже так сказалSmile ) одной командой:

Start-BitsTransfer –source <URL> –destination <PathToFile>

но мне, как выяснилось, нужно было лучше изучить вопрос:

image

Оказывается, по-умолчанию модуль для BITS не подгружается. Ок, нужно это дело исправить (а если Вы пользуетесь BITS часто, то лучше это загнать в профиль, тогда не нужно будет делать это каждый раз):

image

и теперь у нас есть наши командлеты:

image

Ну-с, приступим:

image

Отлично, не правда ли? Оно даже показывает прогресс закачки визуально. А вот и не прекрасно, потому что как только я отклчил мой сетевой интерфейс, моя закачка была отменена и я не смог найти никаких ее следов:

image

Даже несмотря на то, что утверждалось, что “BITS will try again” – он так этого и не сделал и не было ни одной зарегистрированной BITS-задачи. Я, если честно, не знаю почему (пусть мне объяснят =) ), но нашел как этого избежать. Просто добавьте параметр “-Asynchronous” к строке и все сработает как нужно, хотя уже и нельзя будет увидеть этот прекрасновидный статус загрузки:

image

image

Однако, даже несмотря на то, что статус закачки сменился в конце концов на “Transferred”, в целевой папке был только .tmp файл. На самом деле, команда без параметра “-Asynchronous” просто выыкладывает Вам файл, куда нужно, но мы уже знаем недостатки этого метода. Так что я вынужден был закатить солнце закончить закачку вручную:

image 

В общем, не слишком большая разница с BITSAdmin. К тому же я не смог найти как добиться такого же эффекта, как с fasion BITSAsmin /MONITOR.

Суммируя:

1) PoSh при скриптинге — рулит

2) Вы можете использовать для интерактивных задач любой набор команд, который Вам нравится. Однако помните, что BITSAdmin могут отменить в любой момент

Потому, пока я не прочитаю внимательно все сам или мне не объяснят, как делать по другому, я буду использовать PoSh, везде, где смогу, а мониторить задачи буду с помощью BITSAdmin. ;)