Скачать 0.55 Mb.
|
Выполнение лабораторной работы.Лабораторная работа посвящена изучению основ взаимодействия команд в операционных системах семейства *nix, использованию перенаправления потоков ввода-вывода, регулярных выражений и написанию простых программ на языке командного интерпретатора. Выполнение лабораторной работы предусматривает работу с удалённым сервером. Для доступа к серверу используется терминальная программа PuTTY. В лабораторной работе требуется:
Поскольку, как правило, под решение практически любой задачи в Linux можно найти в Internet или готовое решение, или набор рецептов, то выполнение лабораторной работы предусматривает использование готовых скриптов для выполнения поставленных задач. С другой стороны, данные скрипты надо установить на конкретную систему, адаптировать их под задачу и обеспечить их выполнение в рамках выделенного виртуального сервера. В лабораторной работе требуется получить, записать и проанализировать следующие значения:
Вызов программы snmpget имеет вид: $ snmpget -c public -v 1 192.168.250.1 IF-MIB::ifDescr.2 \ > IF-MIB::ifInOctets.2 \ > IF-MIB::ifInUcastPkts.2 \ > IF-MIB::ifOutOctets.2 \ > IF-MIB::ifOutUcastPkts.2 IF-MIB::ifDescr.2 = STRING: eth0 IF-MIB::ifInOctets.2 = Counter32: 120684456 IF-MIB::ifInUcastPkts.2 = Counter32: 1215812 IF-MIB::ifOutOctets.2 = Counter32: 1559547791 IF-MIB::ifOutUcastPkts.2 = Counter32: 1341129 Здесь было произведено обращение к коммутатору 192.168.250.1, с которого были запрошены параметры: IF-MIB::ifDescr.2 — имя 2-го сетевого интерфейса; IF-MIB::ifInOctets.2 — число принятых интерфейсом байтов; IF-MIB::ifInUcastPkts.2 — число принятых интерфейсом пакетов; IF-MIB::ifOutOctets.2 — число переданных интерфейсом байтов; IF-MIB::ifOutUcastPkts.2 — число переданных интерфейсом пакетов. Вывод команды приведён выше. IP-адрес коммутатора и номер сетевого интерфейса индивидуальны для каждого виртуального сервера, их можно найти в файле /root/SNMP.data . В случае отсутствия такого файла в системе эти данные должны быть получены у преподавателя. В ходе лабораторной работы используются программы netstat и snmpget, которые можно установить из пакетов net-snmp-clients и net-tools. Для отображения графиков используется набор утилит RRDTOOLS из пакета rrd-utils. Для получения данных предлагается использовать следующие программы: log-local.sh — получение и запись в файл локальной статистики.#!/bin/bash # Script for logging current system status: # - number of processes # - RX and TX bytes over venet0 network interface # Log to this file: LOG_FILE=/var/www/stat/local.log # Timestamp: TS=`date '+%Y-%m-%d %H:%M:%S'` # Process number PROCNUM=`ps aux | wc -l` PROCNUM=$(($PROCNUM-1)) # netstat info NETBYTES=`netstat -i | grep '^venet0[[:blank:]]' | awk '{print "RX ",$4,"bytes, TX ",$8,"bytes."}'` # Log all to the file echo "$TS => Procs: $PROCNUM, $NETBYTES" >> "$LOG_FILE" #------------------------------------------------------------ log-snmp.sh — получение и запись в файл SNMP-статистики.#!/bin/bash # Script for logging current SNMP information: # - RX and TX bytes over some network interface # Log to this file: LOG_FILE=/var/www/stat/snmp.log # Network interface number: N=8 # SNMP host HOST=192.168.222.100 # SNMP community COMMUNITY=public # MIBS MIB1="IF-MIB::ifDescr.$N" MIB2="IF-MIB::ifInOctets.$N" MIB3="IF-MIB::ifInUcastPkts.$N" MIB4="IF-MIB::ifOutOctets.$N" MIB5="IF-MIB::ifOutUcastPkts.$N" ############################# # Timestamp: TS=`date '+%Y-%m-%d %H:%M:%S'` # snmp info RES='' for MIB in $MIB1 $MIB2 $MIB3 $MIB4 $MIB5; do LINE=`snmpget -c $COMMUNITY -v 1 $HOST $MIB` NAME=`echo $LINE | sed "s/^IF-MIB::\([[:alnum:]]\+\).*/\1/"` VALUE=`echo "$LINE" | sed "s/^IF-MIB::[[:alnum:]]\+\.$N = [[:alnum:]]\+: //"` RES="$RES $NAME:$VALUE" done # Log all to the file echo "$TS => $RES" >> "$LOG_FILE" #------------------------------------------------------------ Запуск скриптов получения данных предполагается осуществлять раз в минуту для получения локальной информации, и раз в две минуты — для получения информации с коммутатора через SNMP. Для вывода данных по запросам браузера предлагается установить в систему для запуска с помощью lighttpd следующие скрипты: cgi-local.sh — отображение локальной статистики.#!/bin/bash # Simple CGI script echo Content-type: text/plain echo "" LOG_FILE=/var/www/stat/local.log # Show NUM lines if [ -n "$QUERY_STRING" ]; then NUM=$QUERY_STRING else if [ -n "$1" ]; then NUM=$1 else NUM=10 fi fi echo "Current statistic:" tail -n $NUM "$LOG_FILE" | sort -r #------------------------------------------------------------ cgi-snmp.sh — отображение SNMP-статистики.#!/bin/bash # CGI script for SNMP statistic echo Content-type: text/plain echo "" LOG_FILE=/var/www/stat/snmp.log # Show NUM lines if [ -n "$QUERY_STRING" ]; then NUM=$QUERY_STRING else if [ -n "$1" ]; then NUM=$1 else NUM=10 fi fi echo "Current statistic:" tail -n $NUM "$LOG_FILE" | sort -r #------------------------------------------------------------ Текст скриптов, обеспечивающих вывод данных в табличной форме и построение графиков, приведён на на странице с примерами к данной лабораторной работе – http://lab-00.edu.cbias.ru/ . Скрипты предполагается размещать в каталогах внутри /var/www, с использованием для скриптов получения данных каталога /var/www/bin, для веб-интерфейса — /var/www/html, для хранения журналов — /var/www/stat. Для хранения графиков используется каталог /var/www/html/png. Для запуска скриптов как веб-программ следует разрешить это в настройках lighttpd (расположенных в каталоге /etc/lighttpd/):
cgi.assign = ( ".pl" => "/usr/bin/perl", … ".rrd" => "/usr/bin/rrdcgi", ".sh" => "/bin/bash" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".sh", ".rrd" ) Изменения настроек вступают в силу после перезапуска lighttpd. Для обеспечения безопасности системы должны соблюдаться определённые правила выполнения скриптов. Сбор статистики должен выполняться от имени непривилегированного пользователя. Обычно для подобных задач создаётся отдельный псевдо-пользователь с ограниченными по сравнению с обычными пользователями системы правами. Псевдопользователь не должен иметь возможности удалённого входа в систему и не должен иметь возможности изменения скриптов. Отображающие информацию скрипты выполняются веб-сервером. Пользователь, под которым работает веб-сервер, не должен иметь возможности записи как в файлы скриптов, так и в файлы с сохранённой статистикой (файлы логов). Временные файлы, создаваемые веб-сервером, не должны быть доступны для записи или удаления остальным пользователям системы. Остальные пользователи системы не должны иметь возможности чтения и записи файлов логов. Для удобного доступа к различным скриптам в /var/www/html предлагается разместить индексный файл с названием index.html вида: Текущая статистика
|
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications (vba). 8 | ||
Лабораторная работа №8. Структурирование таблицы с автоматическим подведением итогов | ... | ||
Лабораторная работа №6 (статические массивы, знакомство с графическим режимом. Возможно будет изменена) 49 | Задания на экзамен выполняются студентом в компьютерном классе при наличии конспектов под руководством преподавателя | ||
«Бухгалтерский учет и анализ». Она состоит из нескольких частей, каждая из которых относится к разделу 3 «Первичные бухгалтерские... | «Бухгалтерский учет и анализ». Она состоит из нескольких частей, каждая из которых относится к разделу 3 «Первичные бухгалтерские... | ||
Лабораторная работа №7 Отпуск материалов на производство, прочее выбытие материалов |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |