Dado um nome de máquina, quero verificar se alguém está logado nessa máquina ou não. Apenas uma resposta sim/não seria suficiente (não quero o nome de usuário). Alguma dica sobre qual comando procurar?
Por 'logado' - quero dizer, usar uma interface gráfica nessa máquina - o ssh não conta.
Você pode presumir que tenho um login SSH autorizado para esta máquina.
Responder1
who
mostra quem está logado. Se eles estiverem em uma interface gráfica, o "terminal" deles é o display X ao qual estão anexados (caso contrário, o tty):
paul :0 2013-02-20 11:43
Então
who | grep paul
não retornaria nada se eu não estivesse logado, ou algo assim se estivesse.
Se você quiser excluir conexões ssh e de console, então:
who | grep -v pts | grep paul
Você pode executar este comando remotamente adicionando ao comando ssh:
ssh user@host 'who | grep -v pts | grep paul'
Isso fará login na máquina remota, executará who
e retornará os resultados.