Monitora l'attività degli utenti Linux con gli strumenti psacct o acct
psacct o acct sono entrambe utilità open source per monitorare le attività degli utenti sul sistema Linux. Queste utilità vengono eseguite in background e tengono traccia dell'attività di ciascun utente sul tuo sistema, nonché delle risorse che vengono consumate.
Ho utilizzato personalmente questi strumenti nella nostra azienda, abbiamo un team di sviluppo in cui i nostri sviluppatori lavorano continuamente sui server. Quindi, queste sono le migliori utility per tenerli d'occhio.
Questi programmi forniscono un modo eccellente per monitorare cosa stanno facendo gli utenti, quali comandi stanno eseguendo, quante risorse vengono consumate e per quanto tempo gli utenti sono attivi sul sistema. Un'altra caratteristica utile è che fornisce le risorse totali consumate da servizi come Apache, MySQL, FTP, SSH, ecc.
Penso che questa sia una delle utilità fantastiche e più necessarie per ogni amministratore di sistema Linux/Unix, che desidera tenere traccia delle attività degli utenti sui propri server/sistemi.
Il pacchetto psacct o acct fornisce diverse funzionalità per il monitoraggio delle attività del processo.
- Il comando ac stampa le statistiche degli accessi/disconnessioni degli utenti (tempo di connessione) in ore.
- Il comando lastcomm stampa le informazioni sui comandi precedentemente eseguiti dall'utente.
- I comandi accton vengono utilizzati per attivare/disattivare il processo di contabilità.
- Il comando sa riassume le informazioni dei comandi eseguiti in precedenza.
- I comandi last e lastb mostrano un elenco degli ultimi utenti che hanno effettuato l'accesso.
Installazione dei pacchetti psacct o acct in Linux
psacct e acct sono entrambi pacchetti simili e non c'è molta differenza tra loro, ma il pacchetto psacct è disponibile solo per distribuzioni basate su rpm come come RHEL, CentOS e Fedora, mentre il pacchetto acct è disponibile per distribuzioni come Ubuntu<, Debian e Linux Mint.
Per installare il pacchetto psacct nelle distribuzioni basate su rpm, immetti il seguente comando yum.
yum install psacct
Per installare il pacchetto acct utilizzare il comando apt in Ubuntu/Debian/Linux Mint.
sudo apt install acct
Su altre distribuzioni Linux, puoi installarlo come mostrato.
sudo apk add psacct [On Alpine Linux]
sudo pacman -S acct [On Arch Linux]
sudo zypper install acct [On OpenSUSE]
Avvio del servizio psacct o acct
Per impostazione predefinita, il servizio psacct è in modalità disabilitata ed è necessario avviarlo manualmente nelle distribuzioni basate su RHEL. Utilizzare il comando seguente per verificare lo stato del servizio.
sudo systemctl status psacct
Vedi lo stato visualizzato come disabilitato, quindi avviamolo manualmente utilizzando i seguenti comandi, che creeranno un file /var/account/pacct.
sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct
In Ubuntu, Debian e Mint il servizio viene avviato automaticamente, non è necessario avviarlo di nuovo.
Visualizza le statistiche del tempo di connessione degli utenti
Il comando ac senza specificare alcun argomento visualizzerà le statistiche totali del tempo di connessione in ore in base agli accessi/disconnetti dell'utente dal file wtmp corrente.
ac
total 11299.15
Visualizza le statistiche degli utenti Linux giornalieri
Utilizzando il comando “ac -d” verrà stampato il tempo totale di accesso in ore per giorno.
ac -d
Jun 25 total 0.19
Oct 13 total 14.45
Oct 27 total 672.00
Oct 28 total 15.82
Nov 3 total 4.29
Nov 5 total 10.13
Dec 7 total 14.04
Dec 10 total 23.60
Dec 27 total 808.93
Jan 3 total 12.31
Mar 3 total 1438.67
Jul 22 total 6767.81
Today total 1517.09
Visualizza il tempo di accesso totale di tutti gli utenti Linux
Utilizzando il comando "ac -p" verrà stampato il tempo di accesso totale di ciascun utente Linux in ore.
ac -p
rockylinux 425.61
tecmint 702.29
root 10171.54
total 11299.44
Visualizza l'ora di accesso dell'utente Linux
Per ottenere il tempo totale delle statistiche di accesso dell'utente "tecmint" in ore, utilizzare il comando as.
ac tecmint
total 702.29
Visualizza l'orario di accesso giornaliero dell'utente
Il seguente comando stamperà il tempo totale di accesso giornaliero dell'utente "tecmint" in ore.
ac -d tecmint
Oct 11 total 8.01
Oct 12 total 24.00
Oct 15 total 70.50
Oct 16 total 23.57
Oct 17 total 24.00
Oct 18 total 18.70
Nov 20 total 0.18
Stampa tutti i comandi Linux eseguiti dagli utenti
Il comando “sa” viene utilizzato per stampare il riepilogo dei comandi eseguiti dagli utenti.
sa
2 9.86re 0.00cp 2466k sshd*
8 1.05re 0.00cp 1064k man
2 10.08re 0.00cp 2562k sshd
12 0.00re 0.00cp 1298k psacct
2 0.00re 0.00cp 1575k troff
14 0.00re 0.00cp 503k ac
10 0.00re 0.00cp 1264k psacct*
10 0.00re 0.00cp 466k consoletype
9 0.00re 0.00cp 509k sa
8 0.02re 0.00cp 769k udisks-helper-a
6 0.00re 0.00cp 1057k touch
6 0.00re 0.00cp 592k gzip
6 0.00re 0.00cp 465k accton
4 1.05re 0.00cp 1264k sh*
4 0.00re 0.00cp 1264k nroff*
2 1.05re 0.00cp 1264k sh
2 1.05re 0.00cp 1120k less
2 0.00re 0.00cp 1346k groff
2 0.00re 0.00cp 1383k grotty
2 0.00re 0.00cp 1053k mktemp
2 0.00re 0.00cp 1030k iconv
2 0.00re 0.00cp 1023k rm
2 0.00re 0.00cp 1020k cat
2 0.00re 0.00cp 1018k locale
2 0.00re 0.00cp 802k gtbl
Spiegazione dell'output del comando precedente:
- 9.86re è un "tempo reale" secondo i minuti dell'orologio da parete
- 0.01cp è la somma del tempo del sistema/utente in minuti CPU
- 2466k è l'utilizzo medio del core in termini di tempo della CPU, ovvero 1k unità
- Nome del comando sshd
Stampa le informazioni sull'utente Linux
Per ottenere le informazioni di un singolo utente, utilizzare le opzioni -u.
sa -u
root 0.00 cpu 465k mem accton
root 0.00 cpu 1057k mem touch
root 0.00 cpu 1298k mem psacct
root 0.00 cpu 466k mem consoletype
root 0.00 cpu 1264k mem psacct *
root 0.00 cpu 1298k mem psacct
root 0.00 cpu 466k mem consoletype
root 0.00 cpu 1264k mem psacct *
root 0.00 cpu 1298k mem psacct
root 0.00 cpu 466k mem consoletype
root 0.00 cpu 1264k mem psacct *
root 0.00 cpu 465k mem accton
root 0.00 cpu 1057k mem touch
Stampa Numero di processi Linux
Questo comando stampa il numero totale di processi e minuti CPU. Se vedi un aumento continuo di questi numeri, allora è il momento di esaminare il sistema per capire cosa sta succedendo.
sa -m
sshd 2 9.86re 0.00cp 2466k
root 127 14.29re 0.00cp 909k
Stampa e ordina l'utilizzo in percentuale
Il comando "sa -c" mostra la percentuale più alta di utenti.
sa -c
132 100.00% 24.16re 100.00% 0.01cp 100.00% 923k
2 1.52% 9.86re 40.83% 0.00cp 53.33% 2466k sshd*
8 6.06% 1.05re 4.34% 0.00cp 20.00% 1064k man
2 1.52% 10.08re 41.73% 0.00cp 13.33% 2562k sshd
12 9.09% 0.00re 0.01% 0.00cp 6.67% 1298k psacct
2 1.52% 0.00re 0.00% 0.00cp 6.67% 1575k troff
18 13.64% 0.00re 0.00% 0.00cp 0.00% 509k sa
14 10.61% 0.00re 0.00% 0.00cp 0.00% 503k ac
10 7.58% 0.00re 0.00% 0.00cp 0.00% 1264k psacct*
10 7.58% 0.00re 0.00% 0.00cp 0.00% 466k consoletype
8 6.06% 0.02re 0.07% 0.00cp 0.00% 769k udisks-helper-a
6 4.55% 0.00re 0.00% 0.00cp 0.00% 1057k touch
6 4.55% 0.00re 0.00% 0.00cp 0.00% 592k gzip
6 4.55% 0.00re 0.00% 0.00cp 0.00% 465k accton
4 3.03% 1.05re 4.34% 0.00cp 0.00% 1264k sh*
4 3.03% 0.00re 0.00% 0.00cp 0.00% 1264k nroff*
2 1.52% 1.05re 4.34% 0.00cp 0.00% 1264k sh
2 1.52% 1.05re 4.34% 0.00cp 0.00% 1120k less
2 1.52% 0.00re 0.00% 0.00cp 0.00% 1346k groff
2 1.52% 0.00re 0.00% 0.00cp 0.00% 1383k grotty
2 1.52% 0.00re 0.00% 0.00cp 0.00% 1053k mktemp
Elenca gli ultimi comandi eseguiti dall'utente
Il comando "latcomm" viene utilizzato per cercare e visualizzare le informazioni sui comandi utente eseguiti in precedenza. Puoi anche cercare comandi di singoli nomi utente. Ad esempio, vediamo i comandi dell'utente (tecmint).
lastcomm tecmint
su tecmint pts/0 0.00 secs Wed Feb 13 15:56
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56
id tecmint pts/0 0.00 secs Wed Feb 13 15:56
grep tecmint pts/0 0.00 secs Wed Feb 13 15:56
grep tecmint pts/0 0.00 secs Wed Feb 13 15:56
bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56
dircolors tecmint pts/0 0.00 secs Wed Feb 13 15:56
bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56
tput tecmint pts/0 0.00 secs Wed Feb 13 15:56
tty tecmint pts/0 0.00 secs Wed Feb 13 15:56
bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56
id tecmint pts/0 0.00 secs Wed Feb 13 15:56
bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56
id tecmint pts/0 0.00 secs Wed Feb 13 15:56
Cerca nei registri i comandi
Con l'aiuto del comando lastcomm potrai visualizzare l'utilizzo individuale di ciascun comando.
lastcomm ls
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56
Per ulteriori informazioni e utilizzo, consulta le pagine man di questi strumenti.