Mostrar usuarios que iniciaron sesión y cerraron sesión

Mostrar usuarios que iniciaron sesión y cerraron sesión

Mi tarea:

Escriba un programa que genere información sobre los usuarios del sistema después de un cierto intervalo de tiempo: quién entró, quién salió.

Intenté hacerlo de manera diferente comparando dos archivos. No sé qué tan bien lo hago. commNo es muy bueno aquí, lo sé. Intenté usar diff, pero su salida a la consola me resulta incomprensible y cuando lo intenté diff -q, solo obtuve esta líneaFiles 1.txt and 2.txt differ

Por favor, ayúdame.

#!/bin/bash
while (true) do
who > 1.txt
sleep 10s
who > 2.txt
(comm -13 1.txt 2.txt) > 3.txt
(comm -23 2.txt 1.txt) > 4.txt
echo IN :
cat 3.txt 
echo OUT :
sleep 10s
cat 4.txt 
echo [______________________________________________________________]
done

upd: o mejor así...no sé

#!/bin/bash
while (true) do
who > 1.txt
sleep 10s
who > 2.txt
(comm -13 1.txt 2.txt) > 3.txt
echo IN :
cat 3.txt 
echo OUT :
sleep 10s
who > 2.txt
(comm -23 3.txt 2.txt) > 4.txt
cat 4.txt 
echo [______________________________________________________________]
done

Respuesta1

#!/bin/bash
who >1.txt
sleep 10
who >2.txt
awk 'NR==FNR{a[$1];next}!($1 in a){print $1}' 1.txt 2.txt >3.txt

awk 'BEGIN{print "Below are the New users logged in now "}{print $0}' 3.txt

echo "=========================="

awk 'NR ==FNR {a[$1];next}!($1 in a){print $1}' 2.txt 1.txt > 4.txt


awk 'BEGIN{print "Below are the user who logged out now"}{print $0}' 4.txt

información relacionada