Linux: w (who) comanda un monitor top-like


3

Esiste un monitor simile topal comando w( who)? Va bene se è un pacchetto che deve essere installato. Qualsiasi sapore Linux. Mi piacerebbe avere un semplice monitor CLI in tempo reale degli utenti connessi al sistema insieme a quello che stanno facendo. TIA

Risposte:


3

Hai diverse possibilità. Quelli che mi vengono in mente immediatamente si basano tutti sull'idea di eseguire periodicamente il wcomando (quindi, a rigor di termini, non sono monitor in tempo reale, ma top aggiorna anche i processi attuali solo periodicamente):

  1. Basato su shell (sintassi bash)

    Ciclo infinito che viene eseguito wogni secondo:

    while true; do
       clear
       w
       sleep 1
    done
    
  2. Esiste anche un programma dedicato a tale scopo, chiamato watch:

    watch -n 1 "w"
    
  3. Mentre le possibilità 1 e 2 di solito funzionano immediatamente su un sistema GNU / Linux standard, esiste anche un programma chiamato multitail. Sebbene in primo luogo progettato per un altro scopo,

    Il programma MultiTail ti consente di visualizzare uno o più file come il programma di coda originale. La differenza è che crea più finestre sulla tua console (con ncurses). Può anche monitorare i caratteri jolly: se un altro file corrispondente al carattere jolly ha una data di modifica più recente, passerà automaticamente a quel file.

    può anche eseguire periodicamente un programma:

    multitail -r 1 -l "w"
    

Entrambi, watche multitailpossono anche evidenziare le differenze rispetto alla corsa precedente, controlla le pagine man per le opzioni corrispondenti (e molto altro).


Perfetto grazie! Avevo già fatto il primo posto ma ho pensato che potesse esserci uno strumento migliore. Mi piace scoprire le altre opzioni, grazie ancora!
mVChr

eol="$(tput el)";clear; while true ; do w | sed -re "s/^(.*)$/$eol \1 /" ;sleep 1 ; tput home ; done- una variante per la prima sopra.
Hannu,

1

L'ultimo comando agisce leggendo / var / log / wtmp. È possibile impostare un orologio su di esso mediante inotifywait (parte del pacchetto * inotify-tools) come segue:

   while inotifywait -e close_write /var/log/wtmp ; do /path/to/executable/script; done 

dove / path / to / eseguibile / script è uno script (reso eseguibile dallo script chmod 755 ) che farà qualche azione molto evidente per attirare la tua attenzione, vedi qui per alcuni suggerimenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.