|
lsof | grep sshd |
|
Visualizza i file aperti da sshd.
Notare che visualizza anche la porta su cui è in LISTENING. |
strace -o debug.txt ssh |
|
Scrive su debug.txt l'output del tracing
di ssh.
Molto utile perchè permette di interagire con lo STOUT
del processo senza essere sommersi dai debug di strace. |
strace -p 657 |
|
Fa uno strace in tempo reale del processo
che sta girando con il PID 657. |
|
|
Linux |
Solaris |
FreeBSD |
SGI |
HP-UX |
strace |
truss |
ktrace |
par |
tusc |
|
|
L'opera di debugging di un processo non è generalmente
argomento da corso di amministrazione base, anche perchè spesso
riguardano problemi sul lato applicativo che vanno affrontati direttamente
dallo sviluppatore.
In ogni caso, nella vita di ogni sysadm capita sistematicamente che
dei servizi non partano o dei programmi non facciano quello che dovrebbero
fare (non inchiodarsi, innanzitutto), oppure, più subdolamente,
hanno comportamenti erratici o problemi di prestazioni o di sopportazione
di alti carichi.
Alcuni strumenti sono comunemente a disposizione del sistemista per
diagnosticare simili problemi:
logs |
I log sono sempre la prima cosa
da guardare. Eventualmente analizzare syslog.conf o le istruzioni
e le configurazioni del singolo programma per capire dove vengono
loggati i suoi messaggi. |
debugging |
Quasi sempre è possibile
lanciare un programma con diversi livelli di debug, aumentando
la verbosità del debug (di solito registrato sul file
di log) si aumenta la possibilità di capire cosa non
funziona. |
strace comando |
Strace traccia le chiamate di sistema e i segnali del programma
specificato mentre lo esegue. Ovviamente va utilizzato solo
per fini diagnostici, rallentando particolarmente la velocità
di esecuzione. Spesso non è nemmeno necessario capire
l'output di strace, basta cercare righe dove si parla di errori
e vengono indicati path o funzioni specifiche.
Spesso un programma non funziona perchè non trova certi
file (librerie ecc) o non ha i permessi adeguati sugli stessi.
|
ldd comando |
Stampa l'elenco delle librerie condivise
utilizzate dal comando specificato |
lsof [opzioni] |
Elenca gli open file del sistema.
Un open file può essere: un normale file, una directory,
un file speciale a blocchi o caratteri, una librerira, una socket
Internet, una socket Unix domain...
E' utile per vedere le risorse utilizzate da un programma. |
|
|