Detectando tempo ocioso do usuário.

1. Detectando tempo ocioso do usuário.

daniel
corbe

(usa Slackware)

Enviado em 09/08/2008 - 18:20h

Olá para todos, preciso detectar o tempo ocioso do usuário no sistema, para após esse tempo esgotado realizar uma ação, como fechar o firefox por exemplo.
Alguêm poderia me ajudar com esse script?
obrigado


  


2. Re: Detectando tempo ocioso do usuário.

Marcus-RJ
Marcus-RJ

(usa Arch Linux)

Enviado em 09/08/2008 - 19:16h

O tempo ocioso do usuario pode se descoberto atraves do comando 'w', olha o exemplo abaixo:

#w
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
marcus :0 18:36 ?xdm? 16:12 0.10s /bin/sh /opt/kde3/bin/startkde
pedro pts/0 18:36 31:48 0.00s 0.64s kded [kdeinit] --new-startup
joao pts/1 18:36 5:27 8.32s 0.02s /bin/bash
root pts/2 19:02 0.00s 0.08s 0.02s /bin/bash

Agora é só observar o campo "IDLE", ou seja, fazer um filtro com o awk, cut...

Para tomar ações depois do usuário fica um tempo "inativo", você pode usar a variável "TMEOUT". Segue um exemplo para efetuar o logout de usuario apos ficar 1200 segundos "inativo"

#vi /home/user/.bashrc
#export TMOUT=1200

Existe o comando last que talvez também possa te ajudar. Enfim, algumas dicas, espero que algo possa te ajudar.

Abraços!




3. Re: Detectando tempo ocioso do usuário.

Renato Leite
renato.leite

(usa Slackware)

Enviado em 09/08/2008 - 19:17h

cara eu dei uma olhada por aew e achei isso: http://www.mail-archive.com/shell-script@yahoogrupos.com.br/msg07968.html

vê se ajuda esse link.


4. Re: Detectando tempo ocioso do usuário.

daniel
corbe

(usa Slackware)

Enviado em 09/08/2008 - 19:40h

o comando w retorna
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
daniel :0 17:37 ?xdm? 8:47 0.02s /bin/sh /usr/bin/startkde




de onde tiro a informação de tempo de ociosidade? quanto a variavel TMOUT pelo que entendi serve somente caso eu queira deslogar após a ociosidade.

agradeço a atenção



5. Re: Detectando tempo ocioso do usuário.

Marcus-RJ
Marcus-RJ

(usa Arch Linux)

Enviado em 09/08/2008 - 21:09h

Oi!

No comando 'w' o tempo ocioso está com campo "IDLE". Faz o seguinte, posta a saida completa do comando abaixo para eu tentar te ajudar.

#w | grep -v ':0'

Abraços!




6. Re: Detectando tempo ocioso do usuário.

daniel
corbe

(usa Slackware)

Enviado em 09/08/2008 - 21:19h

[daniel@localhost ~]$ w | grep -v ':0'
21:18:30 up 3:41, 1 user, load average: 0,03, 0,06, 0,05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
[daniel@localhost ~]$


agora so o w

[daniel@localhost ~]$ w
21:18:53 up 3:41, 1 user, load average: 0,09, 0,07, 0,05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
daniel :0 17:37 ?xdm? 2:51 0.02s /bin/sh /usr/bin/startkde
[daniel@localhost ~]$


grato a ajuda amigo



7. Re: Detectando tempo ocioso do usuário.

Marcus-RJ
Marcus-RJ

(usa Arch Linux)

Enviado em 18/08/2008 - 15:03h

Perdao, mas andei vendo melhor e realmente o comando 'w' assim como o comando 'who' só são eficientes em detectar tempo ocioso de usuarios logados no shell linux, o que nao serve para o seu caso.
Acho dificil encontrar uma solucao, uma vez que ainda que o usuario nao faça "nada" no modo gráfico, para o sistema ele ainda estará fazendo alguma coisa.


Se encontrar alguma solução, posta aí. :)

Abraços!


8. Re: Detectando tempo ocioso do usuário.

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 18/08/2008 - 15:32h

Tinha nada pra fazer aqui no trabalho, daí saiu isso (de curiosidade). Vê se resolve seu problema:

--- corta aqui INICIO
#!/bin/sh
# Fábio Berbert de Paula <fberbert@gmail.com>
# Verifica tempo ocioso de determinado usuário no X
# Leva em conta o tempo de movimento do mouse

MOUSEDEV=/dev/psaux
MOUSELOG=/tmp/mouse
TEMPOOCIOSO=10 # em segundos


echo 1 > $MOUSELOG # zerar tempo ocioso

# efetuar log do movimento do mouse
sudo cat $MOUSEDEV | tee -a $MOUSELOG 1>/dev/null 2>/dev/null &

# looping infinito - aborta quando executa tempo ocioso
while test 1
do
TIMESTAMP=`date +%s`
LOGSTAT=`stat -t $MOUSELOG 2>/dev/null` read name size blocks unk uid gid dev inode links unk2 unk3 last_access last_mod last_change ioblock << ENDHERE
$(echo $LOGSTAT)
ENDHERE

if [ $last_mod ]
then
TIME_DIFF=`expr $TIMESTAMP - $last_mod`
if [ $TIME_DIFF -gt $TEMPOOCIOSO ]
then
# execucao de tarefa aqui
echo $TEMPOOCIOSO ocioso. Executando...
break
fi
fi
sleep 1
done

# matr processo que loga movimento do mouse
sudo killall cat

--- corta aqui FIM


9. Tempo Inativo

jucieudo lima
jucieudo

(usa Mandrake)

Enviado em 28/08/2012 - 10:51h

Bom dia!
Foi instalador o Debian na Maquina Virtual Rip Vir do Windows 2008 e na parte Gráfica do Debin de Tempo em Tempo Fica Inativo, só que o problema que o Rip Vir não funciona o Curso do Mouse. Por isso não consigo abrir o gerenciador de energia. Então fico utilizando o terminal através do ctrl+ alt F1
Então gostaria do comando que tirasse esse tempo inativo através do Terminal.
OBS: o problema que isso estar mim causando e que estar matando o meu serviço de GLPI e para meu sistema de GLPI funcionar tenho que ficar mexendo de vez enquanto.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts