Томас Лимончелли - Тайм-менеджмент для системных администраторов
- Название:Тайм-менеджмент для системных администраторов
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2007
- Город:Санкт-Петербург
- ISBN:5-93286-090-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Томас Лимончелли - Тайм-менеджмент для системных администраторов краткое содержание
По тайм-менеджменту изданы сотни книг, но только эта написана сисадмином для сисадминов. Автор учитывает специфику их труда: работая над долгосрочными проектами, сисадмины вынуждены постоянно прерываться, чтобы наладить технику, помочь пользователям. И даже овладев всеми тонкостями профессий, сисадмин задерживается по вечерам и работает по выходным.
Основное внимание уделяется приемам, которые помогут сисадминам не только вести повседневные дела, но и справляться с неизбежными критическими ситуациями. Вы научитесь управлять отвлекающими факторами, исключать непроизводительные затраты времени, вести список дел, разрабатывать процедуры для регулярно совершаемых действий, сосредотачиваться на текущей задаче, расставлять приоритеты в соответствии с ожиданиями клиентов, документировать и автоматизировать рабочие процессы для ускорения их выполнения. Издание насыщено примерами, взятыми автором из его долгой карьеры, на протяжении которой он занимался обслуживанием рабочих станций и серверов, а также разработкой ПО и систем безопасности. А это значит, что читатель получит советы бывалого человека. Томас давно занимается проблемой тайм-менеджмента, ведет обучающие семинары. Приемы, которыми он делится с коллегами, проверены на практике. Они работают!
Тайм-менеджмент для системных администраторов - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
# Если вы отредактируете его на любом другом компьютере,
# он будет перезагружен. БУДЬТЕ ВНИМАТЕЛЬНЫ!
Поскольку в комментарии упоминается xed, я должен пояснить, что это такое. Есть несколько программ с именем xed, но эту конкретную программу можно найти по адресу http://www.nightcoder.com/code/xed. Она вызывает редактор, которым вы обычно пользуетесь ($EDITOR можно установить в vi, pico, emacs и т. д.), после того как заблокирует файл. Это обязательное условие для любого сайта, на котором один компьютер используют несколько системных администраторов. Если вы отслеживаете изменения в файле с помощью RCS, эта система зарегистрирует все попытки отредактировать файл. Вы получаете практически бесконечный откат и журнал, где записано, кто и что изменил. Если вы заметите, что последний месяц система ведет себя как-то странно, то проверьте, кто редактировал файл месяц назад. Будьте снисходительны: все мы допускаем ошибки.
Сложные задачи, выполняемые однократно
Автоматизация работы предполагает, что, выполняя нечто сложное, мы записываем последовательность действий. В этом случае повторить действия впоследствии много проще. Это как если бы мы строили для себя некоторую подстраховку.
Бывает, что на создание команды, которая делает именно то, что нужно, уходит несколько часов. Например, есть программа, создающая ISO-образы диска для последующей записи на CD-ROM. На странице ее описания перечислены сотни параметров, но команда, позволяющая создать образ, читаемый в Windows, UNIX и Mac OS X, достаточно проста:
$ mkisofs — D -l — J -r — L -f — P "Имя автора" — V "метка диска" — copyright \ copyright.txt — о disk.iso /directory/of/files
Конечно, все можно проделать с помощью графического интерфейса, но вы не получите никакого удовольствия (а также возможности создать сценарий).
Эта команда позволяет вам делать то, что недоступно в большинстве графических интерфейсов, например сообщать об авторских правах, указывать имя автора и т. д.
Она хорошо встраивается в JJAT-файл (в DOS) или в сценарий оболочки UNIX/Linux.
Вот пример сценария makeimage1, в котором используется эта команда:
#!/bin/bash
mkisofs — D -l — J -r — L -f — P "Limoncelli" — V 'date — u +%m%d' $*
Конструкция 'date — u +%m%d' создает метку тома, содержащую текущую дату.
Я долго не мог создавать хорошие сценарии, потому что не знал, как обрабатывать параметры командной строки. Расскажу, как следует копировать их в сценарий.
Конструкция $* в сценарии означает «любые элементы командной строки». Если вы введете:
$ makeimage1 cdrom/
то последовательность $* будет заменена на cdrom/.
Поскольку $* работает и с несколькими аргументами, вы можете ввести:
$ makeimage1 cdrom/ dir1/ dir2/
В этом случае вместо $* будут подставлены все три аргумента. Команда mkisofs сольет (merge) все три каталога на CD-ROM. Если вы хотите указать конкретные элементы командной строки, пишите $1, $2 и т. д. В нашем примере $1 будет соответствовать cdrom/, а $2 — dir1/.
Еще одной причиной, не позволявшей мне писать хорошие сценарии, было мое неумение обрабатывать флаги командной строки, например scriptname — q file1.txt. Если сценарий, который требовалось написать, был настолько сложен, что требовал учета флагов командной строки, я использовал другой язык или вообще отказывался от создания сценария. Оказывается, в bash есть функция getopt, которая выполняет синтаксический разбор. Однако руководство по bash написано не совсем понятно. В нем сказано, как работает getopt, но не объясняется, как пользоваться этой функцией. Наконец, я нашел подходящий пример и с тех пор периодически копирую его. Неважно, как он работает. Чтобы воспользоваться им, вам совсем необязательно понимать, что он делает и почему. А выглядит он так:
args='getopt ab: $*'
if [$?!= 0]
then
echo "Usage; command [-a] [-b file.txt] file1 file2…"
exit -1
fi
set — $args
for i
do
case "$i"
in
-a)
FLAGA=1
shift
;;
-b)
ITEMB="$2"; shift
shift
;;
-)
shift; break
;;
esac
done
Предполагается, что есть некая команда с флагами — а и — b. Второй флаг особый, потому что за ним должен следовать аргумент, например — b file.txt. Из первой строчки понятно, что за командой getopt следуют буквы, которые могут быть флагами. После флага, которому требуется дополнительный аргумент, стоит двоеточие. Далее мы видим оператор case (выбор) для каждого возможного аргумента. Код оператора либо устанавливает флаг, либо устанавливает флаг и сохраняет аргумент.
А что такое $2? И какой смысл в — )? И что делает set? И как поживает Наоми? Все это вы сможете узнать потом. А сейчас воспользуйтесь образцом, и он будет работать.
(Ну ладно. Если вы вправду хотите в этом разобраться, прочитайте «Advanced Bash-Scripting Guide» (Расширенное руководство по написанию скриптов bash) по адресу http://www.tldp.org/LDP/abs/html.)
Теперь я приведу более развернутый пример, иллюстрирующий некоторые дополнительные возможности. Во-первых, в нем определяется функция usage, предназначенная для вывода справочной информации. Интересная особенность этой функции — команда echo, растянутая на несколько строк. Неплохо, не так ли? bash не возражает. Во-вторых, в этом сценарии проверяется наличие минимального количества (MINITEMS) элементов командной строки после обработки аргументов. Наконец, сценарий демонстрирует обработку флагов, переопределяющих умолчания.
Пожалуйста, пользуйтесь этим кодом, если вам понадобится преобразовать простой сценарий в сценарий, обрабатывающий параметры и флаги:
#!/bin/bash
MINITEMS=1
function usage
{
echo "
Usage: $0 [-d] [-a author] [-c file.txt] [-h] dir1 [dir1…]
-d debug, don't actual run command
-a author name of the author
-c copyright override default copyright file
-h this help message
"
exit 1
}
# Задание умолчаний:
DEBUG=false
DEBUGCMD=
AUTHOR=
COPYRIGHT=copyright.txt
# Обработка аргументов командной строки
# с возможным переопределением умолчаний
args='getopt da: c:h $*'
if [$?!= 0]
then
usage
fi
set — $args
for i
do
case "$i"
in
-h)
usage
shift
;;
-a)
AUTHOR="$2"; shift
shift
;;
-c)
COPYRIGHT="$2"; shift
shift
;;
-d)
DEBUG=true
shift
;;
-)
shift; break;;
esac
done
if $DEBUG; then
echo DEBUG MODE ENABLED.
DEBUGCMD=echo
fi
# Проверка наличия минимального количества элементов
Интервал:
Закладка: