Томас Лимончелли - Тайм-менеджмент для системных администраторов
- Название:Тайм-менеджмент для системных администраторов
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2007
- Город:Санкт-Петербург
- ISBN:5-93286-090-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Томас Лимончелли - Тайм-менеджмент для системных администраторов краткое содержание
По тайм-менеджменту изданы сотни книг, но только эта написана сисадмином для сисадминов. Автор учитывает специфику их труда: работая над долгосрочными проектами, сисадмины вынуждены постоянно прерываться, чтобы наладить технику, помочь пользователям. И даже овладев всеми тонкостями профессий, сисадмин задерживается по вечерам и работает по выходным.
Основное внимание уделяется приемам, которые помогут сисадминам не только вести повседневные дела, но и справляться с неизбежными критическими ситуациями. Вы научитесь управлять отвлекающими факторами, исключать непроизводительные затраты времени, вести список дел, разрабатывать процедуры для регулярно совершаемых действий, сосредотачиваться на текущей задаче, расставлять приоритеты в соответствии с ожиданиями клиентов, документировать и автоматизировать рабочие процессы для ускорения их выполнения. Издание насыщено примерами, взятыми автором из его долгой карьеры, на протяжении которой он занимался обслуживанием рабочих станций и серверов, а также разработкой ПО и систем безопасности. А это значит, что читатель получит советы бывалого человека. Томас давно занимается проблемой тайм-менеджмента, ведет обучающие семинары. Приемы, которыми он делится с коллегами, проверены на практике. Они работают!
Тайм-менеджмент для системных администраторов - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
# командной строки
if $DEBUG; then echo ITEM COUNT = $#; fi
if [$# — lt "$MINITEMS"]; then
usage
fi
# Если первый аргумент особый, запомнить его:
# ТНЕIТЕМ="$1"; shift
# Клонируйте эту строчку для каждого элемента,
# который хотите сохранить.
# Не забудьте при этом откорректировать значение
# переменной MINITEMS.
# Если вы хотите обработать остальные элементы,
# делайте это здесь:
# for i in $*; do
# echo Looky! Looky! I got $i
# done
if [! -z "$COPYRIGHT"];
then
if $DEBUG; then echo Setting copyright to: $COPYRIGHT; fi
CRFLAG="-copyright $COPYRIGHT"
fi
LABEL='date — u +%Y%m%d'
$DEBUGCMD mkisofs — D -l — J -r — L -f — P "$AUTHOR" — V $LABEL $CRFLAG $*
Самый лучший способ научиться сцеплять команды UNIX/Linux в один длинный канал — заглядывать через плечо того, кто этим занимается. Сейчас я попробую научить вас делать это, создав на ваших глазах небольшую утилиту.
♥ Книга «Think UNIX» (Думайте в духе UNIX), Que, — отличный учебник по объединению инструментов UNIX/Linux в длинные команды.
Самой мощной технологией, представленной в UNIX/Linux, является возможность объединить несколько команд аналогично тому, как наращивают садовый шланг для поливки. Если у вас есть программа, которая преобразует входной текст в верхний регистр, и программа, сортирующая строки в файле, то вы можете сцепить их друг с другом. В результате вы получите команду для преобразования строк в верхний регистр и их вывода в заданном порядке. Все, что от вас требуется, — это поставить символ «|» между командами. Выходная информация одной команды поступит на вход следующей:
$ cat файл | toupper | sort
Тем, кто не знаком с UNIX/Linux, сообщу, что cat — это команда, выводящая файл. Программу toupper я написал для преобразования текста в верхний регистр, a sort — программа, сортирующая строки текста. Все они прекрасно стыкуются.
Теперь напишем более сложную утилиту. Это будет программа, определяющая, какой компьютер в вашей локальной сети наиболее вероятно заражен червем. Программа будет представлять собой один длинный канал.
Звучит неожиданно? Все, что будет делать наша программа, — это искать подозрительные на заражение компьютеры. Иными словами, она выведет список хостов, нуждающихся в более внимательном осмотре. Тем не менее, ваши коллеги будут удивлены, уверяю вас.
Программа не заменит вам хорошее антивирусное обеспечение, но я выбрал этот пример как хорошую иллюстрацию некоторых рудиментарных приемов программирования оболочки. Кроме того, вы узнаете кое-что новое о работе сетей. Когда мы закончим, в ваших руках будет простой инструмент, которым вы сможете пользоваться для диагностики этой конкретной проблемы в своей сети. С помощью этой программы мне удалось убедить руководство в необходимости купить настоящее антивирусное программное обеспечение.
Каков признак того, что компьютер инфицирован червем? Надо проверить, какие компьютеры чаще других отправляют ARP-пакеты.
Черви/вирусы/шпионские программы нередко пытаются соединиться со случайно выбранным компьютером локальной сети. Когда компьютер впервые пытается связаться с локальным IP-адресом, он отправляет ARP-пакет для выяснения Ethernet (МАС) — адреса. Нормальные (не-инфицированные) компьютеры обычно общаются лишь с несколькими компьютерами: с серверами, которые им нужны, и с их локальным маршрутизатором. Если обнаружится, что какой-то компьютер отправляет значительно больше ARP-пакетов, чем остальные, скорее всего, это можно считать признаком его заражения.
Построим простой канал в оболочке, который будет собирать следующие 100 ARP-пакетов в сети и определять, какой хост сгенерировал больше пакетов, чем другие хосты того же уровня. Что-то вроде конкурса «Кто пошлет больше пакетов». В прошлую такую проверку я обнаружил, что червями заражены два из пятидесяти компьютеров сети.
Команды, приведенные ниже, должны работать в любой системе UNIX/Linux или другой UNIX-подобной системе. Вам понадобится команда tcpdump и доступ с правами root. Команда which tcpdump сообщит вам, установлена ли команда tcpdump в вашей системе. Проверка пакетов в сети имеет этические аспекты. Выполняйте ее, только если у вас есть разрешение.
Вот команда, получившаяся у меня в итоге (прошу прощения за испорченный сюрприз):
$ sudo tcpdump — l -n агр | grep 'агр who-has' | \
head -100 | awk '{ print $NF }' |sort | uniq — с | sort — n
Она такая длинная, что не помещается в одной строке этой книги, поэтому я разбил ее на две строки, а символом переноса служит обратный слэш. Вам не нужно набирать обратный слэш при вводе команды. [7] Если используемая вами терминальная программа допускает ввод строки такой длины (что обычно выполняется). Но если эту команду предполагается, в свою очередь, использовать в тексте скрипта, то при переносе необходимо набирать обратный слэш. — Примеч. науч. ред.
Не следует и нажимать клавишу Enter в этом месте.
Вывод команды выглядит так:
tcpdump: verbose output suppressed, use — v or — vv for full protocol decode listening on en0, link-type EN10MB (Ethernet), capture size 96 bytes
1 192.168.1.104
2 192.168.1.231
5 192.168.1.251
7 192.168.1.11
7 192.168.1.148
7 192.168.1.230
8 192.168.1.254
11 192.168.1.56
21 192.168.1.91
30 192.168.1.111
101 packets captured
3079 packets received by filter
0 packets dropped by kernel
Не обращайте внимание на две первые и три последние строки. В остальных строках указано количество пакетов и IP-адрес. Этот эксперимент показал, что хост 192.168.1.111 отправил 30 ARP-пакетов, а хост 192.168.104 — только один пакет. Большинство машин редко отправляли пакеты за исследуемый период, но два хоста отправили в 4–6 раз больше пакетов, чем остальные. Это свидетельствовало о проблеме. Быстрое сканирование антивирусной программой — и оба хоста стали как новенькие.
А теперь расскажу, как я строил эту командную строку. Я начал с команды:
$ sudo tcpdump — l -n arp
Здесь sudo означает, что следующая команда должна быть выполнена с правами пользователя root. Весьма вероятно, что она запросит пароль. Если в вашей среде нет sudo, вы можете воспользоваться аналогичной командой или выполнить эту последовательность от имени пользователя root . [8] Во многих UNIX-подобных системах в этом может помочь команда su. — Примеч. науч. ред.
Будьте внимательны. Человеку свойственно ошибаться, но настоящий храбрец не боится работать от имени root.
Команда tcpdump прослушивает Ethernet. Флаг -1 нужен, если мы собираемся направить вывод другой программе. Дело в том, что, в отличие от других команд, tcpdump выполняет буферизацию выходных данных для ускорения работы. Однако при направлении вывода в канал нам это не нужно. Флаг — n отключает поиск в DNS для каждого найденного IP-адреса. Параметр arр означает, что команда tcpdump должна отслеживать только ARP-пакеты.
Читать дальшеИнтервал:
Закладка: