Regula o horário de uso do computador pelos filhos - Versão 2.0
Publicado por Emmanuel Ferro 10/11/2008
[ Hits: 5.715 ]
FINALIDADE: Regular de forma automática (e sem questionamentos) o horário que os filhos usam o computador.
FUNCIONAMENTO: Desliga o computador segundo as regras de horários e castigo que você definir para os usuários que você quiser.
INSTALAÇÃO: Altere no script suas preferências e inclua no arquivo /etc/crontab a segunte linha: */1 * * * * root /regula-2.0 &
OBS.1: Testado em Ubuntu, necessita do pacote zenity.
OBS.2: Esta versão acrescenta a opção "de castigo".
#!/bin/bash # # regula.sh Versão 2.0 # # changelog: # 1.0 - 2.0 - Acrécimo da opção de_castigo # # Copyright 2008 Emmanuel Ferro <emmanuel.ferro@gmail.com> # # Este programa é software livre, você pode redistribuí-lo ou modificá-lo # sob os termos da GNU General Public License, versão 2 ou qualquer versão # mais recente, conforme publicado pela Free Software Foundation. # # Este programa é distribuido na esperança de que possa ser útil, porém # SEM NENHUMA GARANTIA, sem mesmo a garantia implícita de COMERCIALIZAÇÃO # ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a GNU General Public License # para mais detalhes. # # Você pode ter recebido uma copia da GNU General Public License juntamente # com este programa, do contrario solicite uma cópia escrevendo para Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # DESCRIÇÃO: 1) Desliga o computador se o usuário logado estiver na lista filhos, # e a hora atual e o dia da semana estiverem num intervalo proibido. # 2) Desliga o computador se o usuário logado estiver na lista de_castigo # sem considerar o intervalo proibido. # # COMO USAR: Altere a lista de filhos e de_castigo, a mensagem de alerta e os inervalos # proibidos conforme sua necessidade. Inclua uma entrada no arquivo # /etc/crontab, atravéz do comando abaixo: # $ sudo echo "*/1 * * * * root /usr/local/bin/regula-2.0 &" >> /etc/crontab # # Obs.1: Considerando que o script está em /usr/local/bin # Obs.2: Atribua permissão de execução a este script ($ chmod a+x /usr/local/bin/regula.sh) # Obs.3: Você pode criar uma exceção ao horário proibido sempre que quizer programando # um shutdown para qualquer horário (antes, durante ou depois do horário proibido) # Variáveis usadas logado=`who|cut -d' ' -f1|uniq` dia_sem=`date +%u` hora=`date +%H%M` shutd=`ps ax|grep shutdown|grep "\-h"|wc -c` # ************ ALTERE AQUI CONFORME SUA NECESSIDADE ************************ filhos=( iana bianca medu visita ) de_castigo=( iana ) mensagem="Tempo esgotado $logado! \nVá dormir! \nDesligando em 1 minutos..." mensagem_castgo="$logado, você está de castigo!\nReflita sobre seu comportamento\nDesligando em 1 minuto" # Definição de horário proibido para cada dia da semana case $dia_sem in 1) hora_ini=2200 ; hora_fim=0600 ;; # SEGUNDA 2) hora_ini=2200 ; hora_fim=0600 ;; # TERÇA 3) hora_ini=2200 ; hora_fim=0600 ;; # QUARTA 4) hora_ini=2200 ; hora_fim=0600 ;; # QUINTA 5) hora_ini=0000 ; hora_fim=0600 ;; # SEXTA 6) hora_ini=0000 ; hora_fim=0600 ;; # SÁBADO 7) hora_ini=2200 ; hora_fim=0600 ;; # DOMINGO *) exit 0;; esac # *************************************************************************** # Função que programa o desligamento e emite um alerta desligar() { # Desligar em 1 minutos shutdown -h +1 & # Pegando a sessão do usuário, para que o root execute uma aplicação no display de outro usuário export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -fo gnome-screensaver)/environ) # Emitir mensagem de alerta su $logado -c "zenity --display :0 --warning --text '$mensagem'" } # Função que altera a mensagem e desliga castigo(){ mensagem=$mensagem_castigo desligar } # Não faz nada se o usuário logado não for filho e_filho=`echo ${filhos[*]}|grep $logado|wc -w` [ ${e_filho} -eq 0 ] && exit 0 # Não faz nada se já existe um shutdown programado [ $shutd -gt 0 ] && exit 0 # Se houver castigo todo horário é proibido e_castigo=`echo ${de_castigo[*]}|grep $logado|wc -w` [ ${e_castigo} -ne 0 ] && castigo # Se o intervalo proibido estiver no mesmo dia if [ $hora_ini -lt $hora_fim ]; then # Verificar horário if [ $hora -gt $hora_ini ] && [ $hora -lt $hora_fim ]; then desligar fi # Se o intervalo proibido passar pela meia noite else # Verificar horário if [ $hora -gt $hora_ini ] || [ $hora -lt $hora_fim ]; then desligar fi fi # Fim exit 0
Faz uma busca no Google e abre o primeiro hit (Estou com Sorte)
Script para desligamento automático do computador
Instalar temas GTK no /usr/share/themes ou no diretório pessoal
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Kernel long term como “inutil” [RESOLVIDO] (1)
É cada coisa que me aparece! - não é só 3% (7)
Indicação de hospedagem VPS (2)
Servidor Fileserver em debian 12 com integração ao AD [RESOLVIDO] (13)