Суббота
18.05.2024, 11:13
| RSS
Главная
Меню сайта

Категории раздела
Madriva [3]
Ubuntu (KUbuntu, EdUbuntu, XUbuntu) [78]
SUSE [1]
Fedora Core [9]
ASPLinux [1]
Debian [16]
Gentoo [3]
Другие [167]

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 45

Статистика

Rambler's Top100Рейтинг@Mail.ru

Главная » 2009 » Март » 5 » Консольные скрипты и утилиты
Консольные скрипты и утилиты
21:11
Производительность труда системного администратора Linux можно существенно повысить путем правильного применения скриптов. Для этого нужно уметь составлять циклы и обрабатывать данные с помощью таких утилит, как awk, grep и sed. Существует множество ситуаций, когда их использование позволяет сократить количество команд и уменьшить вероятность ошибок пользователя.

Например, предположим, что нам нужно создать новый файл /etc/hosts для планируемого кластера Linux. Долгий способ: ручное добавление IP адресов в vi или другом любимом редакторе. Однако процесс можно существенно упростить, взяв уже существующий файл /etc/hosts и добавив к нему следующее, набрав в командной строке:

# P=1; for i in $(seq -w 200); do echo "192.168.99.$P n$i"; P=$(expr $P + 1);
done >>/etc/hosts


Это создаст две сотни имен хостов, с n001 по n200, с IP-адресами от 192.168.99.1 до 192.168.99.200. При заполнении файла такого типа вручную есть риск ввести дублирующиеся адреса или имена хостов, поэтому это очень хороший пример использования встроенной команды для предотвращения ошибок пользователя. Обратите внимание, что это делается в оболочке bash, по умолчанию установленной в большинстве дистрибутивов Linux.

Далее, предположим, нам нужно убедиться в том, что объем памяти на всех узлах кластера Linux одинаков. В большинстве подобных случаев лучше всего использовать распределенную или параллельную оболочку, но для иллюстрации приведём пример с использованием SSH.

Предположим, что SSH настроена на аутентификацию без пароля. Тогда запустите:

# for num in $(seq -w 200); do ssh n$num free -tm | grep Mem | awk '{print $2}';
done | sort | uniq


Командная строка выглядит весьма лаконично. (Может быть гораздо хуже, если добавить регулярные выражения). Давайте разберем её на составляющие и раскроем тайну.

Сначала выполняется цикл от 001 до 200. Такое заполнение нулями в начале делается с помощью опции -w команды seq. Далее мы замещаем переменную num , чтобы создать хост, на который нам нужно зайти по SSH. Как только он у нас есть, передаём ему команду. В нашем случае это:

free -m | grep Mem | awk '{print $2}'

Эта команда говорит:

* Вызвать команду free для определения памяти в мегабайтах
* Взять выходные данные этой команды и с помощью grep извлечь строкуи, содержащую текст Mem
* Взять эту строку и с помощью awk вывести второе поле, которое и показывает общий размер памяти узла

Эта операция выполняется на каждом узле.

После выполнения этой команды на каждом узле вывод для всех 200 узлов перенаправляется (|d) команде sort, чтобы отсортировать все полученные значения объемов памяти.

И, наконец, дубликаты удаляются командой uniq. Эта команда выдает один из следующих результатов:

* Если на всех узлах с n001 по n200 размер памяти одинаков, то будет выведено одно-единственное число. Это и есть размер оперативной памяти, видимый каждой операционной системой.
* Если размер памяти различается, мы увидим несколько разных чисел
* И, наконец, если соединение по SSH с каким-то узлом не состоится, будут выведены какие-то сообщения об ошибках.

Эта команда не идеальна. Если вы обнаружите, что размер памяти отличен от ожидаемого, вы не сможете определить, на каком именно узле или узлах. Для этого может понадобиться другая команда.

Тем не менее это быстрый способ что-то проверить и на скорую руку определить, все ли в порядке. В этом и суть: быстрая проверка, дешево и сердито!

Источник: http://www.ibm.com/developerworks/ru/library/l-10sysadtips/index.html?S_TACT=105AGX99&S_CMP=GR01
Категория: Другие | Просмотров: 1092 | Добавил: tol | Рейтинг: 0.0/0 |
Всего комментариев: 1
1 sypyeexxyynnc  
0
I set pre-eminent chore http://www.brandgenericdrugs-pillstabletsshipping.com/?info=propecia&offer=202 i exhort

Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

  • Администрация

    Andry


    Tol


    Copyright MyCorp © 2024
    Хостинг от uCoz