neosee.ru

12.11.18
[1]
переходы:128

скачать файл
Автоматизация процесса администрирования при помощи скриптов

Лабораторная работа №5

Автоматизация процесса администрирования при помощи скриптов.


Цель работы: Получить базовые знания, необходимые для написания скрипов. Научится работать с технической литературой.


Краткие теоретические сведенья:

Любой системный администратор Linux рано или поздно сталкивается с таким понятием, как “скрипт”, будь то один из загрузочных скриптов или написанный разработчиком ПО скрипт конфигурирования. В данной работе вы поймете, что написание скриптов на shell не является чем-то из ряда вон выходящим и вполне под силу даже новичку в мире Linux.

Начнем с того, что разберем, что же скрывается за английскими терминами shell и скрипт. Shell, или оболочка, как этот термин иногда переводят - это командный интерпретатор, интерфейс между пользователем и операционной системой, ее ядром. Но, кроме этого, это еще и мощный язык программирования и написания сценариев. Он содержит свои служебные слова и управляющие конструкции и позволяет писать на нем программы. Такая программа на языке сценариев, называемая скриптом, может объединять в себе системные вызовы и команды операционной системы, а также внешние утилиты, создавая мощный инструмент для системного администрирования.


Итак, прежде всего, нам необходимо разобраться в структуре скрипта. Она не представляет собой ничего сложного. По большому счету, простейший скрипт - просто перечисление системных команд. Например:

echo This is just example

whoami

uname -a


Эти команды объединены в одном файле. Но shell должен знать, что он должен этот файл обработать, а не просто прочесть его содержимое. Для этого служит специальная конструкция: #!

Эта конструкция называется «sha-bang». Вообще-то, # задает комментарий, но в данном случает sha-bang означает, что после нее пойдет путь к обработчику скрипта. Напрмер:

#!/bin/bash

#!/bin/sh

#!/usr/bin/perl


Мы остановимся на Bash (Bourne-Again shell). Это shell устанавливается по умолчанию практически во всех Linux-системах, и /bin/sh ссылается на него. Об окончании скрипта говорит служебное слово exit.

Вооружившись этими знаниями, напишем наш первый скрипт:


#!/bin/bash

echo Простой скрипт # Команда echo выводит сообщение на экран

echo Вы:

whoami # whoami показывает имя зарегистрированного пользователя

echo Ваша система стартовала

uptime # uptime показывает время включения машины

echo Сегодня

date # date показывает текущую дату и время

echo Пока все

exit


Сохраним этот файл под именем run.sh. Выполним команду, чтобы сделать скрипт исполняемым.

chmod r+x run.sh

Результатом выполнения скрипта будет:

Простой скрипт

Вы:

voland

Ваша система стартовала

14:38:46 up 1:48, 2 users, load average: 0.47, 0.43, 0.41

Сегодня

Вск Фев 26 14:38:46 MSK 2006

Пока все

Переходим к более серьезному.




Для успешного решения задания лабораторной вам может пригодиться фрагмент описывающий создание функций:

function removeAll(){

echo Removing all files;


rm -r /all;

}


Пример взаимодействия с клавиатурой:

echo -n "Do you want to be a superman? "

read a

if [ "$a" = "y" ] || [ "$a" = "Y" ]

then

superman

else

echo You are loser

fi


Если у вас возникли какие-либо вопросы, то рекомендую вам замечательную книгу Advanced Bash-Scripting Guide Менделя Купера (Mendel Cooper).


Теперь, когда мы научились писать простейшие скрипты, самое время перейти к серьезным вещам.


Ход работы:

Создать скрипт, осуществляющий вывод меню, состоящего из следующих пунктов :

  • текущий пользователь,

  • объем используемой памяти,

  • объем дискового пространства,

  • запущенные процессы,

  • процессы, запущенные текущим пользователем,

  • системная дата и время,

  • время запуска системы

  • выход,


Вывод соответствующей информации в зависимости от выбранного пункта меню. Процесс повторять до тех пор, пока не будет выбран пункт меню “выход”.


В ходе выполнения работы могут понадобиться следующие команды:

Имя текущего пользователя (whoami)


Системная дата и время (date)

date [ПАРАМЕТР]... [+ФОРМАТ]

date [-u|--utc|--universal] [ММДДччмм[[ВВ]ГГ][.сс]]

Показывает текущее время в заданном ФОРМАТЕ, или устанавливает системную дату и

время.


Время работы системы (uptime)

Синтаксис команды

uptime

uptime [-V]

uptime - показывает время работы системы с последнего запуска.


Отчёт об использовании дискового пространства (df)

Синтаксис команды

df [опции] [файл...]

Опции: [-ahHiklmPv] [-t тип-файловой-системы] [-x тип-файловой-

системы] [--block-size=размер] [--print-type] [--no-sync] [--sync]

[--help] [--version] [--]


Поиск образца в файле (grep)

Синтаксис команды

grep pattern [file...]

Поиск участков текста в файле(ах), соответствующих шаблону pattern, где pattern

может быть как обычной строкой, так и регулярным выражением.

Если файл(ы) для поиска не задан, то команда grep работает как фильтр для устройства

stdout, например:

bash$ ps ax | grep clock

765 tty1 S 0:00 xclock

901 pts/1 S 0:00 grep clock



Контрольные вопросы:

  1. Для чего нужны скрипты?

  2. Что необходимо для запуска скрипта?

  3. Какую структуру имеет скрипт?


Лабораторная работа №5. Автоматизация процесса администрирования при помощи скриптов.

3

Проектирование и администрирование компьютерных сетей. Олейник М.А.

скачать файл | источник
просмотреть