Laboratorio di Amministrazione di
Sistemi L-A
Prova pratica del 28 marzo 2007
Descrizione generale del problema
Un sistema è composto da una stazione di monitoraggio (Virtual1), un
server LDAP (Virtual2) ed un server generico (Virtual3). Per ogni utente titolare di un account su Virtual3
esiste una corrispondente entry nella directory LDAP, contenente le
informazioni che permettano all'occorrenza di contattarlo, quali
l'indirizzo di posta elettronica ed il numero di telefono.
La stazione di monitoraggio deve, periodicamente, verificare via SNMP
se il carico del server Virtual3 supera una certa soglia, e, nel caso,
avvertire tutti gli utenti che hanno processi in esecuzione su tale
server. In particolare, dopo aver inviato automaticamente
un messaggio di posta elettronica ad ognuno, deve mostrare
all'operatore il nome, il cognome ed il numero di telefono dell'utente
che tramite i suoi processi ha il maggior numero di file aperti.
Componenti da progettare
1. File da consegnare: utente.schema - Schema che definisce
la classe utente utilizzando
come base la classe predefinita person e
l'attributo predefinito email,
da inserire tra gli schemi riconosciuti dal server LDAP su Virtual2. Le
entry dovranno essere formate da oggetti formati in accordo
alla classe strutturale utente integrata dalla classe ausiliaria predefinita posixAccount.
2. File da consegnare: ldap.sh - Questo script, girando
sulla stazione di monitoraggio, esegue le seguenti operazioni:
- legge via SSH il file degli account di Virtual3, limitatamente alle righe con UID>500;
- chiede interattivamente all'operatore di inserire per
ogni utente l'indirizzo di posta elettronica ed il numero di telefono;
- inserisce nella directory, che gira su Virtual2, l'entry per
ogni utente, compilando con una stringa vuota eventuali attributi
obbligatori che non siano di interesse ai fini dell'esercizio.
3. File da consegnare: snmpd.conf - File di configurazione
che permetta di osservare se il carico di Virtual3 supera la soglia di 0.5
(riferita al valore mediato sugli ultimi 5 minuti).
4. File da consegnare: files.sh - Questo script, lanciato
su Virtual3, accetta come parametro uno username e riporta il numero di
file che tale utente sta utilizzando attraverso tutti i propri processi.
5. File da consegnare: users.sh
- Questo script, lanciato su Virtual3, elenca tutti gli utenti che hanno
processi attivi sul sistema, ordinati in modo decrescente sulla base
del numero di file utilizzati (quindi per primo deve comparire l'utente
che sta utilizzando il maggior numero di file).
6. File da consegnare: monitor.sh
- Questo script, lanciato su Virtual1, esegue le seguenti operazioni:
- esamina via SNMP la condizione di carico di Virtual3, e se trova che
la soglia di carico sia stata superata
- contatta Virtual3 via SSH per recuperare la lista degli utenti
attivi sul server
- interroga la directory LDAP per recuperare i contatti degli
utenti
- usando il comando mail invia
ad ogni utente una e-mail vuota con oggetto "Ridurre le attivita' su Virtual3"
- stampa a video i dettagli dell'utente che su Virtual3 sta usando
piu' file
7. File da consegnare: periodico.txt - Descrizione libera
di come si implementerebbe l'invocazione periodica di monitor.sh ogni 3 minuti. Inserire
nel testo anche le modifiche che si intenderebbe apportare ad eventuali
file di configurazione di sistema.