Regula o horário de uso do computador pelos filhos - Versão 2.0
Publicado por Emmanuel Ferro 10/11/2008
[ Hits: 5.608 ]
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
Script Basico para Tunnel Broker
Configurar data e hora em Xdialog
PARPM - Procura de Arquivos em Pacotes Rpm
Quantidade de emails enviados e recebidos
Nenhum comentário foi encontrado.
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Instalando Discord no Ubuntu 24.04 LTS
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
BUG ao atualizar pacotes libglib2.0-0 libglib2.0-bin libglib2.0-data (2)
Apos atualizaçao do Debian 11 - problema com acentos/teclado (1)
COMANDO PVCREATE NÃO ENCONTRADO (5)