LOGROTATE Labor
Keskkond: Virtual Box, installitud ubuntu/debian server/desktop
Ülesanne:
Näited on toodud kasutaja it näol kelle kodukatalog asub katalogis /home/it
Labor koosneb mitmest osast.
Lahendus:
Logida loodud kasutaja õigustes terminali ja selle kasutaja õigustes luua kodukatalogis katalog /var kuhu hakame kirjutama logi,
Luua kodukatalogis script nimega minu.sh mis peaks kirjutama iga minut log faili var/minu.log järgmiseid kirjeid:
1.kellaaeg ja kuupäev
2.käsu ps axl väljund
3.------------------------- # eraldaja rida
Kasutatavad käsud : touch, cat, date, echo. Enne käsu sissekirjutamist kontrolli see käsk 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
Näiteks kasutaja it puhul:
$ cd $HOME
Loome katalogi
$ mkdir var
Loome faili
$ touch minu.sh
$ chmod 755 minu.sh
Kopeeri altoodud tekst faili
#!/bin/bash
date >> /home/it/var/minu.log
ps axl >> /home/it/var/minu.log
echo "--------------------------------" >> /home/it/var/minu.log
Kontrolliks käivitame skripti ja vaatame kas logi fail tekkis ja logi faili tekis info
$ cd $HOME
$ ./minu.sh
$ ls -l var
$ cat var/minu.log
Oles kasutaja õigustes installime cron deemonisse uue ülesannde mis käivitab iga minut loodud minu.sh scripti.
$ crontab -e
* * * * * /bin/bash /home/it/minu.sh
NB! Faili lõppus peab olema reavahetus(Enter).
Vaata crontabi kasutamisnäidet siit.
Tuleks kontrollida minuti pärast et kas sinna tekisid kirjed.
$ cd $HOME
$ ls -l
$ cat /home/it/var/minu.log
Kasutaja "root" õigustes luua /etc/logrotate.d katalogis fail kasutaja nimega
faili paigutada reeglid mis roteerivad eelnimetatud faili juhul kui
Näiteks it kasutaja puhul:
# apt-get install mailutils
$ cd /etc/logrotate.d
$ touch it
$ nano it
/home/it/var/*.log {
/usr/bin/mail nimi.perenimi@tptlive.ee
size 50k
missingok
rotate 4
compress
}
kus elemendid tähendavad järgmist:
mail it@pa09.tpt # roteerimise puhul teavitus aadress
size 10k # roteerida kui suusrus ületab 10 kilo
missingok # puuduv fail ei tekita probleeme
rotate 5 # viis rotatsiooni
compress # peale rotatsiooni zipida kokku
"root" kasutaja õigustes installida cron deemonisse uus ülesanne mis käivitab iga 5 minuti tagant shell scripti:
/etc/cron.daily/logrotate
$ crontab -e
*/5 * * * * /usr/sbin/logrotate /etc/logrotate.d/it
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
Labori lõpus peale õpetajale näitamist palun kustutage tekitatud ülesanded crontab-ist ja tekitatud log failid loodud kasutaja kodukatalogis..