Regula o horário de uso do computador pelos filhos - Versão 2.0
Publicado por Emmanuel Ferro 10/11/2008
[ Hits: 6.018 ]
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
space2sep (Trocar arquivos com espaço "\ ")
Pegando seu IP e Hostname com um unico comando.
Script de instalação do VLC completo (via slackbuilds)
Adicionar agentes em uma ManageSystemList de ITM6
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Usando o --load-average no Gentoo para evitar OOM Kill
Instalando o COSMIC DE no Gentoo (systemd)
Centralizar Logo com Transparência via ImageMagick
Problemas com o "startx&... no Slackware (12)
Ajudante para criar dicas e artigos no VOL (3)









