Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gsr:laboratoare:laborator-02 [2016/10/19 16:38]
alexandru.carp
gsr:laboratoare:laborator-02 [2016/10/20 21:05] (current)
alexandru.carp [b) Reguli de jurnalizare]
Line 74: Line 74:
 Pentru a detașa un proces de un terminal se folosesc comenzi precum ''​nohup'',​ ''​dtach''​ și ''​disown''​. Pentru a detașa un proces de un terminal se folosesc comenzi precum ''​nohup'',​ ''​dtach''​ și ''​disown''​.
  
-Folosiți comanda ''​wget''​ pentru a descărca fișierul ''​.torrent''​ de [[http://​cdimage.debian.org/​debian-cd/​8.2.0/i386/​bt-cd/​debian-mac-8.2.0-i386-netinst.iso.torrent|aici]].+Folosiți comanda ''​wget''​ pentru a descărca fișierul ''​.torrent''​ de [[http://​cdimage.debian.org/​debian-cd/​8.6.0/amd64/​bt-cd/​debian-8.6.0-amd64-netinst.iso.torrent|aici]].
  
 ==== b) disown ==== ==== b) disown ====
Line 101: Line 101:
 Trimiteți un semnal procesului pentru a-i încheia execuția și apoi reporniți-l sub ''​nohup''​ astfel încât ieșirea standard (//standard output//, //stdout//) să fie redirectată la ''/​dev/​null''​ iar ieșirea de eroare standard (//standard error//, //stderr//) să fie redirectată în fișierul ''​err.log''​. Investigați cu ''​lsof''​ unde pointează descriptorii standard ai procesului. Trimiteți un semnal procesului pentru a-i încheia execuția și apoi reporniți-l sub ''​nohup''​ astfel încât ieșirea standard (//standard output//, //stdout//) să fie redirectată la ''/​dev/​null''​ iar ieșirea de eroare standard (//standard error//, //stderr//) să fie redirectată în fișierul ''​err.log''​. Investigați cu ''​lsof''​ unde pointează descriptorii standard ai procesului.
  
-===== Demo: Inspectarea configurației ​cron =====+===== 03. Serviciul ​cron =====
  
 +==== a) Demo: Inspectarea configurației cron ====
 +
 +/*
 <​note>​ <​note>​
 Pentru task-urile de ''​cron'',​ folositi masina virtuala din ''/​mnt/​sda5/​gsr/''​ Pentru task-urile de ''​cron'',​ folositi masina virtuala din ''/​mnt/​sda5/​gsr/''​
 </​note>​ </​note>​
 +*/
  
 Pentru a vedea configurația ''​cron''​ a sistemului inspectăm configurațiile din fișierele/​directoarele ''/​etc/​cron*''​. Fișierele ''/​etc/​cron.d/​*''​ și fișierul ''/​etc/​crontab''​ conțin configurații standard ''​cron''​ la nivelul sistemului. Liniile de configurare urmează sintaxa crontab așa cum este exemplificată [[http://​techie-experience.blogspot.ro/​2012/​10/​crontab.html|aici]]. Pentru a vedea configurația ''​cron''​ a sistemului inspectăm configurațiile din fișierele/​directoarele ''/​etc/​cron*''​. Fișierele ''/​etc/​cron.d/​*''​ și fișierul ''/​etc/​crontab''​ conțin configurații standard ''​cron''​ la nivelul sistemului. Liniile de configurare urmează sintaxa crontab așa cum este exemplificată [[http://​techie-experience.blogspot.ro/​2012/​10/​crontab.html|aici]].
Line 123: Line 127:
  
 În subdirectorul ''/​var/​spool/​cron/​crontabs/''​ se găsesc job-urile cron active (marcate per utilizator). În subdirectorul ''/​var/​spool/​cron/​crontabs/''​ se găsesc job-urile cron active (marcate per utilizator).
-===== Configurare cron cu standard output ===== 
  
-Dacă dorim să avem un job care să ruleze periodic vom crea o intrare în crontab-ul utilizatorului ​curent.+==== b) Configurare cron cu standard output ==== 
 + 
 +Dacă dorim să avem un job care să ruleze periodic vom crea o intrare în crontab-ul utilizatorului ​''​root''​.
  
 Următorul exercițiu este didactic, ca să putem urmări comportamentul ''​cron''​. Următorul exercițiu este didactic, ca să putem urmări comportamentul ''​cron''​.
Line 135: Line 140:
 Folosim calea completă către comanda ''​echo''​ pentru că nu știm cum arată variabila ''​PATH''​ în mediul în care rulează ''​cron''​. Folosim calea completă către comanda ''​echo''​ pentru că nu știm cum arată variabila ''​PATH''​ în mediul în care rulează ''​cron''​.
  
-Adăugați comanda de mai sus să ruleze la fiecare două minute prin alterarea crontab-ului utilizatorului ''​student''​. După adăugare urmăriți spool-ul cron în ''/​var/​spool/​cron/​crontabs/​student''​.+Adăugați comanda de mai sus să ruleze la fiecare două minute prin alterarea crontab-ului utilizatorului ''​root''​. După adăugare urmăriți spool-ul cron în ''/​var/​spool/​cron/​crontabs/​root''​.
  
-În urma funcționării corecte, veți primi un e-mail către utilizatorul ​''​student'' ​cu output-ul comenzii.+În urma funcționării corecte, veți vedea o intrare in ''​/​var/​log/​syslog'' ​care arata ca a fost executata comanda.
  
 <note tip> <note tip>
-Puteți verifica e-mail-ul primit inspecand directorul ​''​Maildir/​new/​''​+Dupa ce configurati regulile de cron, restartati serviciul ​''​cron''​.
 </​note>​ </​note>​
  
 <note tip> <note tip>
-Pentru crearea intrării în crontab-ul utilizatorului ''​student''​ urmăriți indicațiile de [[http://​techie-experience.blogspot.ro/​2012/​10/​crontab.html|aici]].+Pentru crearea intrării în crontab-ul utilizatorului ''​root''​ urmăriți indicațiile de [[http://​techie-experience.blogspot.ro/​2012/​10/​crontab.html|aici]].
 </​note>​ </​note>​
  
-====Alte configurări cron =====+==== c) Alte configurări cron ====
  
-Actualizați comanda ''​cron''​ de mai sus astfel încât output-ul comenzii ​să nu mai fie livrat prin e-mail ci să fie adăugat într-un fișier dat. Output-ul să conțină și data la care a fost rulată comanda.+Actualizați comanda ​din ''​cron''​ de mai sus astfel încât output-ul comenzii să fie adăugat într-un fișier dat. Output-ul să conțină și data la care a fost rulată comanda.
  
 Instalați pachetul ''​debsums''​. Urmăriți ce configurări de cron sunt adăugate la instalarea pachetului. Instalați pachetul ''​debsums''​. Urmăriți ce configurări de cron sunt adăugate la instalarea pachetului.
Line 160: Line 165:
 </​note>​ </​note>​
  
-====Configurare serviciu cron de pornire client Bittorrent ​=====+==== d) Configurare serviciu cron de pornire client Bittorrent ====
  
 Instalați un client de Bittorrent care funcționează în linia de comandă, precum ''​transmission-cli''​ sau ''​bittorrent''​ sau ''​bittornado''​ și porniți-l în background (folosind ''​nohup''​) ca să descarce un anumit conținut Bittorrent. Găsiți un fișier ''​.torrrent''​ pe Internet și descărcați-l. Instalați un client de Bittorrent care funcționează în linia de comandă, precum ''​transmission-cli''​ sau ''​bittorrent''​ sau ''​bittornado''​ și porniți-l în background (folosind ''​nohup''​) ca să descarce un anumit conținut Bittorrent. Găsiți un fișier ''​.torrrent''​ pe Internet și descărcați-l.
Line 167: Line 172:
  
 Plasați script-ul în crontab cu verificare la 10 minute. Plasați script-ul în crontab cu verificare la 10 minute.
-====Gestionare client de BitTorrent folosind supervisord ​=====+ 
 +==== e) Gestionare client de BitTorrent folosind supervisord ====
  
 Folosiți [[http://​supervisord.org/​|supervisord]] pentru a porni și gestiona clientul BitTorrent de mai sus. Folosiți [[http://​supervisord.org/​|supervisord]] pentru a porni și gestiona clientul BitTorrent de mai sus.
Line 177: Line 183:
 </​note>​ </​note>​
  
-===== Funcționarea NTP =====+===== 04. Serviciul NTP ===== 
 + 
 +==== a) Funcționarea NTP ====
  
 Pentru a verifica funcționarea NTP (//Network Time Protocol//) o soluție este instalarea utilitarului ''​ntpdate''​. Dacă nu-l aveți instalat, instalați-l folosind comanda<​code>​ Pentru a verifica funcționarea NTP (//Network Time Protocol//) o soluție este instalarea utilitarului ''​ntpdate''​. Dacă nu-l aveți instalat, instalați-l folosind comanda<​code>​
Line 185: Line 193:
 Aveți două utilitare pe care le puteți folosi interschimbabil pentru actualizarea timpului sistemului: ''​ntpdate''​ care primește ca argument un server NTP, și ''​nptdate-debian''​ care folosește serverele configurate în ''/​etc/​default/​ntpdate''​ (directiva ''​NTPSERVERS''​). Aveți două utilitare pe care le puteți folosi interschimbabil pentru actualizarea timpului sistemului: ''​ntpdate''​ care primește ca argument un server NTP, și ''​nptdate-debian''​ care folosește serverele configurate în ''/​etc/​default/​ntpdate''​ (directiva ''​NTPSERVERS''​).
  
-====Configurare server NTP. Sincronizare sisteme ​=====+==== b) Configurare server NTP. Sincronizare sisteme ====
  
 Instalați, dacă nu este instalat serverul ''​NTP''​ prin intermediul pachetului ''​ntp''​. Serverul va porni automat și veți putea verifica faptul că ascultă conexiuni pe portul ''​123''​ UDP folosind comanda<​code>​ Instalați, dacă nu este instalat serverul ''​NTP''​ prin intermediul pachetului ''​ntp''​. Serverul va porni automat și veți putea verifica faptul că ascultă conexiuni pe portul ''​123''​ UDP folosind comanda<​code>​
Line 206: Line 214:
 </​note>​ </​note>​
  
 +===== 05. Jurnalizare =====
 +
 +==== a) Investigare configuratie syslog ====
 +
 +Pe mașina virtulă verificați dacă daemonul de syslog este instalat (Hint: rsyslog).
 +<​code>​
 +root@heimdall:​~#​ apt-get install rsyslog
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +rsyslog is already the newest version.
 +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 +</​code>​
 +
 +==== b) Reguli de jurnalizare ====
 +
 +Adaugati în ''/​etc/​rsyslog.conf''​ o intrare prin care TOATE mesajele din sistem sa fie înregistrate în ''/​var/​log/​all_logs''​
 +<​code>​
 +root@heimdall:​~#​ tail -n 1 /​etc/​rsyslog.conf
 +*.* -/​var/​log/​all_logs
 +
 +Se adauga un minus (-) pentru a se evita sincronizarea fisierului dupa fiecare mesaj syslog (fiind vorba despre toate mesajele din sistem).
 +</​code>​
 +
 +Creati fisierul ''/​var/​log/​all_logs'',​ apoi configurati owner-ul ca fiind user-ul sub care ruleaza ''​rsyslog'':​
 +<​code>​
 +# touch /​var/​log/​all_logs
 +# chown syslog:adm /​var/​log/​all_logs
 +</​code>​
 +
 +Reporniți daemonul ''​rsyslog''​ și verificați conținutul fișierului ''/​var/​log/​all_logs''​.
 +<​code>​
 +root@heimdall:​~#​ /​etc/​init.d/​rsyslog restart
 +Stopping enhanced syslogd: rsyslogd.
 +Starting enhanced syslogd: rsyslogd.
 +
 +root@heimdall:​~#​ tail /​var/​log/​all_logs ​
 +Nov  9 15:34:04 heimdall kernel: imklog 5.8.5, log source = /proc/kmsg started.
 +Nov  9 15:34:04 heimdall rsyslogd: [origin software="​rsyslogd"​ swVersion="​5.8.5"​ x-pid="​2604"​ x-info="​http://​www.rsyslog.com"​] start
 +</​code>​
 +
 +==== c) Generate mesaje cu logger ====
 +
 +Folosind comanda ''​logger'',​ generați 5 mesaje de log cu facilitatea mail și cu proritatea info, care să conțină textele "mail log 1" ... "mail log 5". Verificați prezența mesajelor în ''/​var/​log/​all_logs''​.
 +<​code>​
 +root@heimdall:​~#​ logger -p mail.info "mail log 1"
 +
 +root@heimdall:​~#​ logger -p mail.info "mail log 2"
 +
 +root@heimdall:​~#​ logger -p mail.info "mail log 3"
 +
 +root@heimdall:​~#​ logger -p mail.info "mail log 4"
 +
 +root@heimdall:​~#​ logger -p mail.info "mail log 5"
 +
 +root@heimdall:​~#​ tail /​var/​log/​all_logs ​
 +Nov  9 15:34:04 heimdall kernel: imklog 5.8.5, log source = /proc/kmsg started.
 +Nov  9 15:34:04 heimdall rsyslogd: [origin software="​rsyslogd"​ swVersion="​5.8.5"​ x-pid="​2604"​ x-info="​http://​www.rsyslog.com"​] start
 +Nov  9 15:36:55 heimdall root: mail log 1
 +Nov  9 15:36:57 heimdall root: mail log 2
 +Nov  9 15:36:58 heimdall root: mail log 3
 +Nov  9 15:36:59 heimdall root: mail log 4
 +Nov  9 15:37:00 heimdall root: mail log 5
 +</​code>​
 +
 +==== d) Rotirea fisierelor de log ====
 +
 +Modificați ''/​etc/​logrotate.conf''​ astfel încat fisierul ''/​var/​log/​all_logs''​ să fie rotit zilnic, folosind până la maxim 10 fișiere, fișire care să fie comprimate. Logurile trebuie să fie trimiste pe email la sysadmin@gsr.cs.pub.ro. (Hint: ''​man logrotate''​)
 +<​code>​
 +root@heimdall:​~#​ tail -n 8 /​etc/​logrotate.conf
 +/​var/​log/​all_logs {
 + missingok
 + daily
 + create 0660 root utmp
 + compress
 + rotate 10
 + mail sysadmin@gsr.cs.pub.ro
 +}
 +</​code>​
 /* /*
  
gsr/laboratoare/laborator-02.1476884302.txt.gz · Last modified: 2016/10/19 16:38 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0