http://www.zago.eti.br/script/modelo-com-tempo.txt FAQ e modelos de scripts com tempo prgramado, não inclue o crontab, sobre agendador de tarefas e escripts com data o hora determinada pra execuçao veja no FAQ: http://www.zago.eti.br/agenda.txt Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** Usleep - sleep for the specified number of microseconds man usleep ******************************************************** sleep - espera por uma quantidade de tempo especificada sleep [--help] [--version] número [smhd]... As unidades são: s = segundos m = minutos h = horas d = dias Veja no manual: man sleep Exemplo de script pra exibir o resultado a cada 3 segundos: #!/bin/sh while true; do clear smbstatus -S sleep 3 done Ou simplesmente: watch -n 3 smbstatus -S Veja mais exemplos no FAQ: http://www.zago.eti.br/script/loop.txt ******************************************************** T I M E O utilitário 'time' é usado como uma espécie de cronômetro para medir o tempo de execução de um comando especificado. Ele pode ajudar na otimização de programas para velocidade máxima, assim como vários outros usos. Pra instalar: apt-get install time Medir o tempo pra executar uma tarefa, neste exemplo medir o tempo pra conferir uma imagem ISO do CL10, o comando pra conferir o md5 e: md5sum -c cl10_cd1.iso.md5 Pra usar o comando time, coloque o comando entre "picas" veja o exemplo do comando e o resultado: [root@faqcl10 cl10_cd1]# time sh -c 'md5sum -c cl10_cd1.iso.md5' cl10_cd1.iso: A soma coincide real 0m16.495s user 0m3.097s sys 0m1.914s Quando quiser descartar o resultado do comando e pegar somente o tempo decorrido, acrescente > /dev/null pra descartar as mensagens do comando que está entre "picas", veja que no resultado abaixo não exibe: cl10_cd1.iso: A soma coincide [root@faqcl10 cl10_cd1]# time sh -c 'md5sum -c cl10_cd1.iso.md5' > /dev/null real 0m17.000s user 0m3.049s sys 0m1.930s Outros exemplos em linha de comando: Pra descompactar em outro diretório, o modo verbose do tar "v" exibe os resultados e no final o tempo decorrido. time tar -zxvf homezago-221104.tar.gz -C /tmp Pra retornar somente o tempo gasto pra executar uma tarefa: time sh -c 'tar -zxvf homezago-221104.tar.gz | grep comandos.txt' > /dev/null Faz a pesquisa e exibe também o tempo decorrido time grep "comandos.txt" -r /home/zago/guiaz/ Conta somente o tempo time sh -c 'grep "comandos.txt" -r /home/zago/guiaz/' > /dev/null ******************************************************** ******************************************************** De:  Ricardo Para:  Ademerio Eduardo Moreira Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br) shell script Data:  Wed, 18 Jun 2003 14:52:04 -0300 (BRT) Olá Dá uma olhada nesse: -------------- Inicio #!/bin/sh intervalo=30s funcao() {   if [ "$campo1" == "" ]   then     campo1=$i   else     campo2=$i     tmp=`echo $campo2 | awk -F: '{print $1}'`     tempo=`printf "%d" $tmp`     if [ $tempo -ge $limite ]     then #      echo -e "\n #      ------------------------- #      DESLOGADO POR INATIVIDADE #      -------------------------" > /dev/$campo1       skill -9 $campo1 #      echo $campo1,$campo2,$tempo,":)"     fi     campo1=""   fi } ch() {     campo1=""     for i in `w -h | awk '{print $2" "$5}' | grep "\?\?m"`     do       funcao     done } cm() {     campo1=""     for i in `w -h | awk '{print $2" "$5}' | grep -v "\?\?m" | grep -v "\."`     do       funcao     done } dh() {   while [ 0 ]   do     campo1=""     for i in `w -h | awk '{print $2" "$5}' | grep "\?\?m"`     do       funcao     done   sleep $intervalo   done } dm() {   while [ 0 ]   do     campo1=""     for i in `w -h | awk '{print $2" "$5}' | grep -v "\?\?m" | grep -v "\."`     do       funcao     done     sleep $intervalo   done } if [ $# -ne 2 ] then   echo "   -dm : rodar como daemon (limite em minutos)   -dh : rodar como daemon (limite em horas)   -cm : ser chamado na crontab (limite em minutos)   -ch : ser chamado na crontab (limite em horas)   Ex.: idle.sh -dm 3 &   " else   limite=$2   case $1 in     -dm) dm ;;     -dh) dh ;;     -cm) cm ;;     -ch) ch ;;     *) echo -e "\nParâmetros desconhecidos, execute o programa sem parâmetro\n" ;;   esac fi -------------- Fim Setar variáveis de auto-logout não adianta pois os usuários desligam. Esse script resolve o meu problema. Espero que lhe seja útil. P.S1.: Dá pra reduzir bastante. P.S2.: Este script serve para terminais remotos. Como ninguém fica logado na máquina em que ele está rodando aqui não tenho problema, mas se no seu caso tiver o X rodando, mexa do script para ele descartar o X. ------------------------------- Ricardo      .-.      /v\     // \\    > L I N U X <    /(   )\     ^^-^^ ------------------------------- On Tue, 17 Jun 2003, Ademerio Eduardo Moreira wrote: > Oi PessoAll. > Aqui na firma estou tendo problemas com usuario que se conectam e esquecem > de desconectar seus terminais , ficando como se conectados. > estou precisando criar uma shell que elimine usarios que estao conectados > mas estao ociosos a mais de 10 minutos, gostaria de saber se alguem tem este > script. ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Pause Data:  Thu, 15 Apr 2004 23:15:48 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Davinio Ross wrote: >Qual o comando no Linux que equivale ao pause dos Dos, sem ser o > sleep? read Assim: read dummy Nota: read não é um comando, é um "builtin" do bash. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ******************************************************** > Eu novamente lista :) > Desta vez estou escrevendo para pedir uma luz! > Seguinte, estou montando uma rede toda em linux em um cybercafe para um > amigo, o meu problema esta em como controlar o acesso aos equipamentos, digo > por tempo mesmo, o usuario ira pagar por hora, e eu sinceramente nao sei > como farei pra restringir o usuario dada uma determinada hora, comprada pelo > usuario, resumindo... quero saber como farei pra bloquear o acesso do > usuario ao equipamento quando sua hora comprada expirar, travando > completamente o equipamento, alguem sabe? Existe algum programa parecido, > pronto para uso? Solucao caseira rapida: faca uma arvore de arquivos no seu servidor (no caixa provavelmente), com uns arquivos nesse padrao: /usr/share/time/nome.da.maquina E exporte o diretorio /usr/share/time para a sua rede (via NFS). No .xinitrc padrao de cada maquina coloque: TIME=`cat /usr/share/time/$HOSTNAME` wmaker & sleep $TIME xmessage "Seu tempo acabou! Go away!" O valor que vai ficar em "nome.da.maquina" pode ser em horas, minutos ou segundos. No caso de horas tem que colocar um h depois do numero, minutos um m e segundos deixa como tah. > Outra perguntinha, desculpem-me mas eh que realmente preciso de umas luzes > quanto a isso e espero poder contar com a ajuda de voces :) > Tenho como tambem, bloquear os equipamentos (maquinas clientes) apos o boot e > etc... com um logo tipo do cybercafe, e somente duas caixas de texto usuario > e password, bloqueando assim o acesso ao equipamento? Esse eh facil. Use o xdm -:) Deixe ele configuradinho com o logo do seu cybercafeh e divirta-se. Taih. Pode nao ser nenhum metodo genial mas deve funcionar... Qq coisa, mail me Piter PUNK ******************************************************** De: Claudio Matsuoka Para: Jorge Godoy Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)shell de comando para reload automatico Data: Thu, 2 Jun 2005 17:37:30 -0300 (BRT) On Thu, 2 Jun 2005, Jorge Godoy wrote: > Djames Suhanko writes: > > > for i in `seq 1 30`;do echo "$i"; sleep 1;done > > Se formos rigorosos com a exigência, isso aqui é falho. Ele certamente tem um > intervalo de 1 segundo entre uma execução e outra, mas não é executado a cada > um segundo. Hmm. while true; do something & sleep 1; done? De: Djames Suhanko Para: Claudio Matsuoka Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)shell de comando para reload automatico Data: Thu, 2 Jun 2005 17:43:56 -0300 Beleza. Você está jogando o processo em segundo plano. Se ele travar por um motivo qualquer os recursos da maquina podem se esgotar, dependendo do que o script faz. Qual a função desse script? Em Qui 02 Jun 2005 17:37, Claudio Matsuoka escreveu: > > > for i in `seq 1 30`;do echo "$i"; sleep 1;done > while true; do something & sleep 1; done? ********************************************************