LOGROTATE ülesanne
По русски

Luua kasvav log fail ja perioodiliselt protsessida seda faili logrotate käsuga.

Iga rühm loob erineva kasutaja: "katapult" PA09A puhul, "laskur" PA09B puhul, "metalo" PV09 puhul

  1. Luua uus kasutaja.
  2. Loome script faili
  3. crontab-iga genereerime iga minut infot ja suuname ta määratud log faili käivitades script faili
  4. Loome logrotate reeglite faili, mille alusel logrotate deemon roteerib logisid
  5. Paigutame crontab-i ülesannde mis kutsub välja roteerimis programmi scripti

1. minu.sh iga minut käima

Logime loodud kasutaja õigustes terminali ja selle kasutaja õigustes tema kodukatalogis tekitame katalogi var kuhu hakame kirjutama logi.
Nüüd peame looma logi faili ja perioodiliselt kirjutama sinna sisse mingisugust infot. Ja seda peaks olema korraga ~15-20 kilobaiti.
Loome kodukatalogis shelli script nimega minu.sh mis peaks kirjutama iga minut log faili var/minu.log järgmist infot:
1.kellaaeg
2.käsu ps axl väljund
3.-------------------------
# eraldaja rida

Kasutatavad käsud : touch, cat, date, echo. Enne käsu sissekirjutamist kontrollime seda käsku käsureas. Faili alguses peab olema rida mis määrab shelli mille all see script käivitatakse. Naiteks "#!/bin/sh".
Failile tuleb anda käivitus õigus.
Käskude näited:
touch somefile; ps >>somefile; date +%c >>somefile; echo "-?0=--_" >> somefile
Anname sellele failile käivitus õigused:
Kontrolliks käivitame skripti ja vaatame kas logi faili tekis info
Oles kasutaja õigustes installida cron deemonisse uus ülesanne mis käivitab iga minut loodud minu.sh scripti.
Vaata crontabi kasutamisnäidet siit.
Kontrollida minuti pärast et kas log faili tekisid kirjed.

2. Loome logrotate konfiguratsiooni faili $HOME/var katalogis logide roteerimiseks

Kasutaja "root" õigustes luua /etc/logrotate.d katalogis fail kasutaja nimega
faili paigutada reeglid mis roteerivad eelnimetatud faili juhul kui

3. Luua cron job logrotate käivitamiseks iga 5 minuti tagant

"root" kasutaja õigustes installida cron deemonisse uus ülesanne mis käivitab iga 5 minuti tagant shell scripti:
/etc/cron.daily/logrotate
Kontrollida $HOME/var katalogis roteerimis tulemust
% cd $HOME/var; ls -l
-rw-r--r-- 1 kasutaja kasutaja 16599 2010-10-20 18:56 minu.log
-rw-r--r-- 1 kasutaja kasutaja 66489 2010-10-20 18:55 minu.log.1
-rw-r--r-- 1 kasutaja kasutaja 4886 2010-10-20 18:51 minu.log.2.gz
-rw-r--r-- 1 kasutaja kasutaja 5780 2010-10-20 18:48 minu.log.3.gz
-rw-r--r-- 1 kasutaja kasutaja 8984 2010-10-20 18:40 minu.log.4.gz

Töö lõpus peale õpetajale näitamist palun kustutage tekitatud ülesanded crontab-ist ja tekitatud log failid loodud kasutaja kodukatalogis..

______________________________________________________________________________________

Задача по LOGROTATE(ротации лог файлов)

Задача: Создать растущий логфайл и периодически процессировать его с помощью команды logrotate.

В работе будем использовать пользователя с названием вашей фамилии или имени.

  1. Создать указанного пользователя.
  2. Создадим скрипт файл под правами пользователя в домашнем каталоге
  3. С помощью crontab-а каждую минуту гененрируем информацию и направляем её в указанный лог файл запуская скрипт
  4. Создадим файл правил для logrotate, по которым эта служба будет ротировать лог файлы
  5. Расположим под пользователем root в crontab задачу, которая будет запускать скрипт ротации
  6. В logrotate.d изменить почту на свою tptlive.ee и установить postfix

1. minu.sh запускать каждую минуту

Логинимся в терминале под правами создангного пользователя. В домашнем каталоге пользователя создайте каталог var куда будем создавать и ротировать лог файл.
Создадим лог файл и начнём периодически добавлять туда какие-либо данные, которых должно быть за раз около ~15-20 килобайт.
Создадим в домашнем каталоге скрипт файл minu.sh, который должен каждую минуту записывать в файл var/minu.logю Содержимое файла должно быть следующим:
1.текущее время
2.выход команды ps axl
3.-------------------------
# Строка разделителя

Используемые команды : touch, cat, date, echo.
Перед использованием команды в скрипте проверь эту команду в командной строке. В начале скрипт файла должна находиться строка определяющая интерпретатор под которым скрипт запускается. Например "#!/bin/sh".
Файлу перед использованием нужно жать права на запуск.
Примеры команд:
touch somefile; ps >>somefile; date +%c >>somefile; echo "-?0=--_" >> somefile
Дадим файлу права запуска: chmod +x somefile
Для проверки запустите файл и посмотрите появятся ли данные в файле.
Работае под пользователем проинсталлируйте новую задачу в crontab которая будет запускать каждую минуту созданный файл minu.sh.
Смотри пример использования crontab-а здесь.
Проверьте через минуту добавление данных в лог файл.

2. Создайте файл конфигурации logrotate в $HOME/var katalogis logide roteerimiseks

В правах пользователя "root"создайте в каталоге /etc/logrotate.d файл с названием пользователя.
В созданный файл поместить правила которые ротируют указанный лог файл по следующим правилам:

3. Создать cron job для запуска logrotate через каждые 2 минуты

"root" kasutaja õigustes installida cron deemonisse uus ülesanne mis käivitab iga 5 minuti tagant shell scripti:
/etc/cron.daily/logrotate
Kontrollida $HOME/var katalogis roteerimis tulemust
% cd $HOME/var; ls -l
-rw-r--r-- 1 kasutaja kasutaja 16599 2010-10-20 18:56 minu.log
-rw-r--r-- 1 kasutaja kasutaja 66489 2010-10-20 18:55 minu.log.1
-rw-r--r-- 1 kasutaja kasutaja 4886 2010-10-20 18:51 minu.log.2.gz
-rw-r--r-- 1 kasutaja kasutaja 5780 2010-10-20 18:48 minu.log.3.gz
-rw-r--r-- 1 kasutaja kasutaja 8984 2010-10-20 18:40 minu.log.4.gz

4. Нотификация администратора.

Установить почтовый сервер postfix and mailutils
# apt-get install postfix mailutils
при инсталляции выбрать internet site, подождать появление логов и проверить почту, также можно отправить письмо для теста:
# mail (свой tptlive.ee email) и для проверки напишите сами себе письмо.
Add snext string to you logrotate configuration(see logrotate labor) :
/usr/bin/mail nimi.perenimi@tptlive.ee
Where nimi.perenimi@tptlive.ee is you school email address.

Учителю предьявить в отдельных терминальных окнах:

После сдачи работы удалите или закомментируйте все задачи созданные в crontab под всеми пользователями, а также удалите все лог файлы созданные в покаталоге пользователя!!!