1 maggio 2009

Controllo del Sistema Tramite Shell

Per quanti siano convinti che il monitoraggio di una linux box passi "esclusivamente" dal monitor di sistema, o da una delle tante utility grafiche che "passano" come output grafico accattivanti e coloratissime schermate, beh.., sappiate che i sistemi di tipo unix, hanno sempre avuto (dai tempi dei terminali a soli caratteri)le loro efficenti utility per monitorare il sistema.

Tra queste di utility cè free per visualizzare la memoria usata e quella rimanente libera.
Potete scegliere di usare con il comando free una serie di switch nel modo in cui intendete visualizzare l'unità della memoria.

Ecco alcuni esempi

free -b per visualizzare la memoria dettagliata in byte singolo
free -m per visualizzare la memoria dettagliata in megabyte
se intendete tenere(in tempo reale) costantemente sotto controllo l'uso della memoria cè lo switch -s, che può essere usato anche con uno dei precedenti switch in questo modo free -m -s2. Vale a dire visualizza dettagli della memoria in megabyte ogni 2 secondi.

archie@geek:~$ free
total used free shared buffers cached
Mem: 638520 282680 355840 0 14948 134296
-/+ buffers/cache: 133436 505084
Swap: 2240984 0 2240984


df per lo spazio libero su disco, il comando df, può essere usato(anche) su vari tipi di file system in coppia con il comando mount.

Esempio.

archie@geek:~$ df
File System blocchi di 1k Usati Dispon. Uso% Montato su
/dev/sda1 41231344 2779736 36357136 8% /
tmpfs 319260 0 319260 0% /lib/init/rw
varrun 319260 96 319164 1% /var/run
varlock 319260 0 319260 0% /var/lock
udev 319260 164 319096 1% /dev
tmpfs 319260 1200 318060 1% /dev/shm
lrm 319260 2392 316868 1% /lib/modules/2.6.28-11-generic/volatile
/dev/sda6 36337352 186572 34304916 1% /home



du per lo spazio occupato da directory e files sul disco. Il comando du a molte opzioni quindi vi consiglio di dare un bel man du per approfondimenti.

Esempio.

archie@geek:~$ du
88 ./.gconfd
0 ./.gvfs
4 ./Musica
8 ./.idlerc
20 ./.cache
4 ./Documenti
12 ./.fontconfig
8 ./.config/gtk-2.0
4 ./.config/gnome-session/saved-session
8 ./.config/gnome-session
28 ./.config
4 ./Pubblici
8 ./.gconf/desktop/gnome/accessibility/keyboard
12 ./.gconf/desktop/gnome/accessibility
8 ./.gconf/desktop/gnome/applications/window_manager
12 ./.gconf/desktop/gnome/applications
8 ./.gconf/desktop/gnome/background

[output tagliato per abbreviare]


ulimit per limitare tutta una serie di eventi(dai core dumb, alla grandezza dei files) su files e componenti del sistema, qui e usato con lo switch -a

Esempio.

archie@geek:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signal (-i) 5120
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes,-s) 8192
cpu time (seconds,-t) unlimited
max user processes (-u) 5120
virtual memory (kbytes,-v) unlimited
file locks (-x) unlimited


vmstat per visualizzare una istantanea del sistema, dalla memoria virtuale, alla swap, alla cpu, sino al carico di sistema.

Esempio.

archie@geek:~$ vmstat
procs -----------memory------------ ---swap-- -------io------ -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 0 352980 15496 135004 0 0 16 1 261 90 2 2 95 0



top per visualizzare e controllare i processi sul sistema. Visto che i comandi per controllare i "processi interni" a top sono parecchi e con scopi differenti tra loro, eccovi uno screenshots di top, e vi rimando alla solita man page(man top).

archie@geek:~$ top















pstree utility per vedere tramite una comoda visualizzazione ad albero, i processi che a loro volta avviano altri sottoprocessi, con il loro ordine di avvio.

Esempio.

archie@geek:~$ pstree
init─┬─NetworkManager
├─anacron───sh───run-parts───apt───sleep
├─atd
├─avahi-daemon───avahi-daemon
├─bluetoothd


├─bonobo-activati───{bonobo-activati}
├─console-kit-dae───63*[{console-kit-dae}]
├─cron
├─cupsd
├─2*[dbus-daemon]
├─dbus-launch


├─dd
├─fast-user-switc
├─gconfd-2
├─gdm───gdm─┬─Xorg
│ └─x-session-manag─┬─bluetooth-apple


├─evolution-alarm───{evolution-alarm}
│ ├─gnome-panel
│ ├─metacity


├─nautilus
│ ├─nm-applet
│ ├─python


├─seahorse-agent
│ ├─ssh-agent
│ ├─update-notifier


└─{x-session-manag}
├─6*[getty]
├─gnome-keyring-d
├─gnome-power-man
├─gnome-screensav
├─gnome-settings-───{gnome-settings-}


├─gnome-terminal─┬─bash───top
│ ├─bash───pstree
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}


├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]
├─gvfs-gphoto2-vo
├─gvfs-hal-volume
├─gvfsd
├─gvfsd-burn
├─gvfsd-trash


├─hald───hald-runner─┬─hald-addon-inpu
│ └─hald-addon-stor
├─indicator-apple
├─klogd


├─mixer_applet2───{mixer_applet2}
├─multiload-apple
├─nm-system-setti
├─notify-osd
├─pulseaudio─┬─gconf-helper


└─2*[{pulseaudio}]
├─syslogd
├─system-tools-ba
├─trashapplet
├─udevd
└─wpa_supplicant



ps che mostra i programmi in esecuzione con il loro relativo pid. Il comando ps ha molte opzioni utili che potete usare sia singolarmente che in modo concatenato. Per approfondire cè il solito man ps che ci chiarira tutto.

Esempio.

archie@geek:~$ ps
PID TTY TIME CMD
3091 pts/0 00:00:00 bash
7510 pts/0 00:00:00: ps



uptime mostra da quanto tempo una macchina e in funzione, e quanti utenti la stanno usando.

Esempio.

archie@geek:~$ uptime
01:21:32 up 2:44, 2 users, load average: 0.29, 0.18, 0.06


w e simile a uptime, ma ci offre tutta una serie di dettagli in più su che applicazioni stanno usando gli utenti, da quando sono loggati, sino all'uso che stanno facendo della cpu.

Esempio.

archie@geek:~$ w
01:21:32 up 2:44, 2 users, load average: 0.26, 0.17, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
archie tty? :0 22:41 2:44m 1:05 1.00s x-session-manager
archie pts/0 :0.0 22:49 0.00s 0.76s 0.03s w

5 commenti:

phoebe ha detto...

ciao come mai non sei iscritto a feedburner...?

@rchie ha detto...

Ciao, phoebe.

Veramente, non so dirti se per pigrizia o perché sono restio a lasciare molte informazioni personali in giro per il web.

Ti dirò di più, sono uno dei pochi che ancora resistono a Facebook, visto la crescente "notorietà" che ha in Italia. Sarà perché sono un Dinosauro(si dice così vero?).

Poi riguardo a feedburner, potresti elencarmi utilità-vantaggi-convenienza, tanto da convincermi a fare l'iscrizione.

phoebe ha detto...

beh...per facebook, ti dò ragione, tanto se sono iscritta dovunque, tranne li'.. Feedburner, è utile, all'inizio ero titubante anch'io...Innanzitutto, tiene un pò traccia di quelli che leggono, anche se lo fanno diversi gadget. Però con feedburner oltre a monitorare, ovvero tiene traccia di dei tuoi lettori, reeders, puoi avere diverse opzioni per far iscrivere gli altri al tuo blog anche tramite mail.. Offrendo quindi anche un servizio, a chi non è un blogger di blogger, o che si collega poco, ecc..

phoebe ha detto...

..tuttavia dovendo aggiungere un altra cosuccia, anche google reeder, non è male, solo lo trovo un pò casinista, e poco intuito, motivo per cui non lo uso... E questo è un sistema che usano di più quelli di wordpress..però io sono soddisfatta..

@rchie ha detto...

In verità come tu stessa avrai visto, non è che abbia "tutti questi lettori" da non riuscire a tenerne traccia ;-).

ciao.