Стоимость раскрутки сайта - 60 долларов на www.prodvigaem.org.ua Лучшие книги интернета
Материалы предоставлены только для просмотра. Любое использование материалов в коммерческих целях запрещено
103
Компьютерра
Я попросил специалиста Unix shell быстро, не зарываясь в man, написать такой скрипт.
Решение SH:
%>ps A sort ‘%cpu’ format ‘%cpu,pid’ | egrep v ‘^ (0|1|2).’ | grep v ‘%CPU’ | tail —n3 | gawk ‘{print $2;}’ | xargs r kill
Скрипт написан за семь минут, работает, и я его привожу как есть — без исправлений. Не буду объяснять, как он работает, отмечу лишь, что главной проблемой является необходимость выделения из набора строк, возвращаемых командой ps, нужные нам параметры процессов (в данном случае — процессоное время).
Я уверен, что есть более правильные варианты, но они потребуют детального знания возможностей большого числа утилит.
Решение Monad:
C:\> get process | where object { $_.cpu gt 3 } | sort object property cpu | select object Last 3 | foreach object { $_.Kill() }
get process — функция, возвращающая массив объектов типа System.Diagnostics.Process;
where object — функция условия, которая сравнивает значение свойства с тройкой;
$_ — переменная, содержащая элемент массива — объект класса Process;
sort object, select object — сортировка и фильтрация массивов;
foreach object — выполнить код для каждого элемента, в нашем случае — вызвать метод объекта — Kill()
Эту же строку можно написать с использованием алиасов:
C:\> ps | where { $_.cpu gt 3 } | sort cpu | select Last 3 | foreach { $_.Kill() }
Читаемость варианта Monad даже не имеет смысл сравнивать с SH скриптом. Написано за минуту.
Когда?
Не будет преувеличением сказать, что Monad — это качественный скачок, переосмысление накопленного опыта в области управления операционных систем. В заключение несколько слов о том, когда же наступит светлое будущее.
Релиз Monad должен появиться в составе Microsoft Exchange Server 12. Он работает на системах Windows XP, Windows Server 2003 или других системах, поддерживающих .NET Framework 2.0. Beta 3 находится в свободном доступе (download.microsoft.com).
Ссылки
[1]blogs.msdn.com/monad/de fault.aspx (сайт разработчиков Monad).