Linux System Inventory and Baseline

From Carini MediaWiki
Jump to navigation Jump to search


Questa pagina raccoglie comandi utili per creare uno snapshot strutturato dello stato del sistema Linux, utile per:

  • troubleshooting
  • audit tecnico
  • confronto nel tempo (baseline)
  • analisi post-incidente

Processi in esecuzione

Il seguente comando genera un file del tipo:

processes_nomehost_YYYYMMDD_HHMMSS.txt

Il file contiene:

  • intestazione con hostname e timestamp ISO 8601
  • comando eseguito (per ripetibilità)
  • elenco dei processi in formato ad albero (forest)
  • ordinamento per PPID
out="./processes_$(hostname -s)_$(date +'%Y%m%d_%H%M%S').txt"
cmd=(ps -eo pid:8,ppid:8,pcpu:8,nlwp:8,pmem:8,rss:12,drs:12,size:12,lstart:24,cmd --forest --sort=ppid)

{
  printf '# host=%s time=%s\n' "$(hostname -f 2>/dev/null || hostname)" "$(date -Iseconds)"
  printf '# '
  printf '%s ' "${cmd[@]}"
  printf '\n\n'
  "${cmd[@]}"
} > "$out"

Servizi di sistema

Il seguente comando genera un file del tipo:

services_nomehost_YYYYMMDD_HHMMSS.txt

Il file contiene:

  • intestazione con hostname e timestamp ISO 8601
  • comando eseguito (per ripetibilità)
  • elenco completo dei servizi gestiti da systemd
  • servizi attivi, inattivi, falliti o disabilitati
out="./services_$(hostname -s)_$(date +'%Y%m%d_%H%M%S').txt"
cmd=(systemctl list-units --type=service --all)

{
  printf '# host=%s time=%s\n' "$(hostname -f 2>/dev/null || hostname)" "$(date -Iseconds)"
  printf '# '
  printf '%s ' "${cmd[@]}"
  printf '\n\n'
  "${cmd[@]}"
} > "$out"

Memoria e swap

Il seguente comando genera un file del tipo:

memory_nomehost_YYYYMMDD_HHMMSS.txt

Il file contiene:

  • intestazione con hostname e timestamp ISO 8601
  • comando eseguito (per ripetibilità)
  • stato della memoria RAM
  • stato dello swap
out="./memory_$(hostname -s)_$(date +'%Y%m%d_%H%M%S').txt"
cmd=(free -h)

{
  printf '# host=%s time=%s\n' "$(hostname -f 2>/dev/null || hostname)" "$(date -Iseconds)"
  printf '# '
  printf '%s ' "${cmd[@]}"
  printf '\n\n'
  "${cmd[@]}"
} > "$out"

Filesystem montati

Il seguente comando genera un file del tipo:

filesystems_nomehost_YYYYMMDD_HHMMSS.txt

Il file contiene:

  • intestazione con hostname e timestamp ISO 8601
  • comando eseguito (per ripetibilità)
  • elenco dei filesystem montati
  • tipo di filesystem
  • spazio totale, utilizzato e disponibile
  • percentuale di utilizzo
  • punto di mount
out="./filesystems_$(hostname -s)_$(date +'%Y%m%d_%H%M%S').txt"
cmd=(df -hT)

{
  printf '# host=%s time=%s\n' "$(hostname -f 2>/dev/null || hostname)" "$(date -Iseconds)"
  printf '# '
  printf '%s ' "${cmd[@]}"
  printf '\n\n'
  "${cmd[@]}"
} > "$out"

Dispositivi a blocchi

Il seguente comando genera un file del tipo:

blockdevices_nomehost_YYYYMMDD_HHMMSS.txt

Il file contiene:

  • intestazione con hostname e timestamp ISO 8601
  • comando eseguito (per ripetibilità)
  • elenco dei dispositivi a blocchi
  • relazione tra dischi, partizioni e mount point
out="./blockdevices_$(hostname -s)_$(date +'%Y%m%d_%H%M%S').txt"
cmd=(lsblk -f)

{
  printf '# host=%s time=%s\n' "$(hostname -f 2>/dev/null || hostname)" "$(date -Iseconds)"
  printf '# '
  printf '%s ' "${cmd[@]}"
  printf '\n\n'
  "${cmd[@]}"
} > "$out"