Gerência do Squid

Publicado por Jonathan Lessa (última atualização em 29/06/2011)

[ Hits: 7.681 ]

Download sudo_manutencao.sh




Gerenciando o Squid com opções de adicionar/remover usuários, bloquear/liberar sites, verificar status da conexão, verificar status do squid, limpar o cache do squid.

*** Descomentar as linhas abaixo no squid.conf:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/conf/pass.geral
auth_param basic children 5
auth_param basic realm Proxy InfoNet


*** Adicionar as linhas abaixo no squid.conf:

###
#Definindo acls para o script de Manutencao
###
acl sites_liberados_restrito url_regex "/etc/squid/conf/sites_liberados_Restrito"
acl palavras_liberadas_restrito url_regex "/etc/squid/conf/palavras_liberadas_Restrito"
acl sites_bloqueados_restrito2 dstdom_regex "/etc/squid/conf/sites_bloqueados_Restrito2"
acl sites_liberados_geral url_regex "/etc/squid/conf/sites_liberados_Geral"
acl sites_bloqueados_geral url_regex "/etc/squid/conf/sites_bloqueados_Geral"

###
#Definindo acls dos grupos
###
acl gerencia proxy_auth "/etc/squid/conf/users_Gerencia"
acl restrito proxy_auth "/etc/squid/conf/users_Restrito"
acl restrito2 proxy_auth "/etc/squid/conf/users_Restrito2"


http_access allow MAONET gerencia
http_access allow MAONET sites_liberados_geral
http_access deny MAONET sites_bloqueados_geral
http_access allow MAONET restrito2 !sites_bloqueados_restrito2
http_access allow MAONET restrito sites_liberados_restrito
http_access allow MAONET restrito palavras_liberadas_restrito




*** {01.00.001} Comandos a serem executados para devido funcionamento do script

>/etc/squid/conf/sites_liberados_Restrito
>/etc/squid/conf/palavras_liberadas_Restrito
>/etc/squid/conf/sites_bloqueados_Restrito2
>/etc/squid/conf/sites_liberados_Geral
>/etc/squid/conf/sites_bloqueados_Geral
>/etc/squid/conf/users_Gerencia
>/etc/squid/conf/users_Restrito
>/etc/squid/conf/users_Restrito2
chmod 777 /etc/squid/conf/sites_*
chmod 777 /etc/squid/conf/users_*
chmod 777 /etc/squid/conf/palavras_liberadas_Restrito
htpasswd -bc /etc/squid/conf/pass.geral infonet teste
mkdir /var/log/manutencao
>/var/log/manutencao/manutencao.log
chmod -R 777 /var/log/manutencao
mkdir /etc/squid/bkp/
chmod 777 /etc/squid/bkp/
groupadd webmaster
useradd manutencao -g webmaster
passwd manutencao SENHA_DO_USUARIO_MANUTENCAO


Obs.: Caso o IP que esteja aparecendo esteja errado no menu 9, será necessário alterar no script a linha abaixo, informando a interface de conexão correta:

internet=ppp0


   *** Descrição dos Grupos: ***
   Gerencia: tem acesso a irrestrito
   Restrito: tem acesso somente aos sites cadastrados como liberados
   Restrito2: tem acesso a todos os sites, exceto os cadastrados como bloqueados

  



Esconder código-fonte

#!/bin/bash
#Srcipt para manutencao de usuarios/grupos e controle de acesso SQUID
#Autor: Jonathan Lessa   -InfoNet - Solucoes Internet
#Data: 17/05/2010

#Definicao de variaveis
arqusuarios="/etc/squid/conf/pass.geral"
dirusuarios="/etc/squid/conf/"
dirbackupusuarios="/etc/squid/bkp/"
logfile=/var/log/manutencao/manutencao.log
internet=ppp0
opcao=
grupos[0]="Gerencia"
grupos[1]="Restrito" 
grupos[2]="Restrito2" 
#grupos[3]="MsnBloqueado"

function listarGrupos() {
   i=0;
   for grupo in ${grupos[@]}
   do
      ((++i));
      echo "$i) - $grupo";
   done
}

while true
do
clear
echo "                  InfoNet - Solucoes Internet                      
   Script para manutencao de usuarios e controle de acesso SQUID

   Selecione a opcao desejada:

1 - Cadastrar usuario
2 - Alterar usuario
3 - Excluir usuario
4 - Listar usuarios
5 - Bloquear site
6 - Liberar/Desloquear site
7 - Listar sites Liberados/Bloqueados
8 - Manutencao do SQUID
9 - Status do sistema
0 - Sair"
   tput cup 18 0; tput el; read -p "Opcao: " opcao;
#   [[ $opcao == 0 ]] && break;
i=0
existe=
clear;
case "$opcao" in
  1 )    echo "Cadastro e Usuario";
   echo "==================";
   echo "";
   read -p "Digite o nome do usuario: " usuario1;
   usuario=$(eval echo $usuario1 | tr [[:upper:]] [[:lower:]])
   #existe=$( grep ^$usuario':' "$arqusuarios");
   grep ^$usuario':' "$arqusuarios";
   (( $? != 0)) && {
      read -p "Digite a senha do usuario: " senha;
           echo "";
           echo "==================================";
           echo "Selecione o gupo no qual deseja cadastrar o usuario:";
           echo "==================================";
           echo "$(listarGrupos)";
      echo "0) - Cancelar cadastro"
           read -p "Grupo: " opgrupo;
      echo "";
      case $opgrupo in
                  [1-${#grupos[@]}] ) {
              grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
              arqgrupo=$dirusuarios"users_"$grupo;
         eval htpasswd -b "$arqusuarios" "$usuario" "$senha" 1>/dev/null 2>/dev/null;
         echo $usuario >> $arqgrupo;
         echo $(date +%d%m%Y)" = cadastrado usuario: $usuario senha: $senha grupo: $grupo" >> $logfile;
         echo Usuario "$usuario" cadastrado com sucesso!;
         service squid reload 1>/dev/null 2>/dev/null;
        };
        ;;
        0 ) echo "Cadastro Cancelado!";
        ;;
        * ) echo "Grupo invalido";
        ;;
      esac;
   } || {
      echo "";
      echo "Usuario ja existe";
   };
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
   ;;
   2 )   echo "Alteracao de Usuario";
   echo "====================";
   echo "";
   read -p "informe o login do usuario: " usuario;
   grep '^'$usuario':' $arqusuarios 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "";
      echo "Usuario nao encontrado!";
   } || {
   clear;
   echo Usuario $usuario encontrado. As alteracoes abaixo serao aplicadas a este usuario!
   echo "====================";
   (( $? == 0 )) && {
      echo "Selecione uma das opcoes a seguir:";
      echo "=================================="
      echo "";
      echo "1) Inserir usuario em grupo";
      echo "2) Alterar usuario de grupo";
      echo "3) Excluir usuario de grupo";
      echo "4) Alterar senha de usuario";
      echo "0) Voltar ao Menu Principal";
      echo "";
      read -p "Opcao: " opusuario;
      case $opusuario in
        1 ) clear;
          echo "A qual Grupo deseja adicionar o usuario ($usuario)?";
          echo "$(listarGrupos)";
          echo "0) - Cancelar operacao"
                    read -p "Grupo: " opgrupo;
          echo "";
                    echo "";
                    case $opgrupo in
                     [1-${#grupos[@]}] ) {
               grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
                         arqgrupo=$dirusuarios"users_"$grupo;
               echo "";
               grep '^'$usuario'$' $arqgrupo;
               (( $? == 0 )) && {
            echo "Este usuario ja esta neste grupo!";
            } || { 
            echo $usuario >> $arqgrupo;
            echo "$(date +%d%m%Y) = Usuario $usuario cadastrado no grupo: $grupo" >> $logfile;
            echo "Usuario $usuario cadastrado no grupo $grupo";
               };
         };
         service squid reload 1>/dev/null 2>/dev/null;
         ;;
         0 ) echo "Operacao cancelada!";
         ;;
         * ) echo "Opcao Invalida!";
         ;;
            esac;
          ;;
        2 ) clear;
          echo "Migrando o usuario ($usuario) de Grupo:";
          echo "============================";       
          echo "$(listarGrupos)";
          echo "0) - Cancelar Operacao";
          read -p "Grupo Atual: " opgrupoorigem;
          case $opgrupoorigem in
                     [1-${#grupos[@]}] ) {
           grupoo=${grupos[`eval echo $(( opgrupoorigem - 1 ))`]};
                         arqgrupoo=$dirusuarios"users_"$grupoo;
           grep '^'$usuario'$' $arqgrupoo;
                          echo "";
                          (( $? != 0 )) && {
                                echo "Este usuario nao esta no grupo informado";
                          } || {
               read -p "Novo Grupo : " opgrupodestino;      
           case $opgrupodestino in
           [1-${#grupos[@]}] ) {
                 grupod=${grupos[`eval echo $(( opgrupodestino - 1 ))`]};
                          arqgrupod=$dirusuarios"users_"$grupod;
             grep '^'$usuario'$' $arqgrupod 1>/dev/null 2>/dev/null;
             (( $? == 0 )) && {
              echo "";
            echo "Este usuario ja esta no Novo Grupo";
             } || {
               eval sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupoo;
                echo $usuario >> $arqgrupod;
                echo $(date +%d%m%Y) " usuario $usuario movido do grupo $grupoo para o grupo $grupod" >> $logfile;
                echo "";
                echo "";
               echo "Usuario $usuario movido do grupo $grupoo para o grupo $grupod";
            };
                 };
             service squid reload 1>/dev/null 2>/dev/null;
             ;;
             0 ) echo "Operacao Cancelada!";
             ;;
             * ) echo "Opcao Invalida";
             ;;
             esac;
           };
           };
           ;;
         0 ) echo "Operacao Cancelada!";
         ;;
         * ) echo "Opcao Invalida";
         ;;
         esac;
        ;;
        3 ) clear;
          clear;
                    echo "Excluindo o usuario ($usuario) de Grupo:";
                    echo "================================";
                    echo "$(listarGrupos)";
          echo "0) - Cancelar Operacao"
                    read -p "Grupo: " opgrupo;
          case $opgrupo in
         [1-${#grupos[@]}] ) {
               grupo=${grupos[`eval echo $(( opgrupo - 1 ))`]};
               arqgrupo=$dirusuarios"users_"$grupo;
                         grep '^'$usuario'$' $arqgrupo 1>/dev/null 2>/dev/null;
                         (( $? == 0 )) && {
                           sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupo;
                           echo $(date +%d%m%Y) " usuario $usuario removido do grupo $grupo" >> $logfile;
                           echo "";
                           echo "";
                           echo "Usuario $usuario removido do grupo $grupo";
             service squid reload 1>/dev/null 2>/dev/null;
               } || {
                 echo"";
                 echo "Usuario nao encontrado neste Grupo!";
               };
         };
         ;;
         0 ) echo "Operacao Cancelada!"
         ;;
         * ) echo "Opcao invalida!";
         ;;
         esac;
        ;;
        4 ) clear;
          echo "ALteracao de Senha";
          echo "==================";   
          echo "";
          echo "Usuario: $usuario";
          read -p "Digite a nova senha: " senha;
          htpasswd -b $arqusuarios $usuario $senha 1>/dev/null 2>/dev/null;
          echo "$(date) => Senha do usuario $usuario alterada para $senha" >> $logfile;
          echo "Senha Alterada!";
          service squid reload 1>/dev/null 2>/dev/null;
        ;;
        0 )
        ;;
        * ) echo "Opcao Invalida";
        ;;
   esac;
   mv -f $dirusuarios*.bkp* $dirbackupusuarios 1>/dev/nulll 2>/dev/null;
   };
   };
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
   ;;
   3 ) echo "Exclusao de Usuario";
   echo "==================";
   echo "";
   read -p "Digite o nome do usuario que deseja excluir: " usuario;
   grep '^'$usuario':' $arqusuarios 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "Usuario nao encontrado!";
   } || {
      read -p "Tem certeza que deseja excluir $usuario do acesso a internet? (S/n): " resp;
      case $resp in
        [sS] ) eval htpasswd -D $arqusuarios $usuario;
         for arqgrupos in $(grep -r "^$usuario$" $dirusuarios | cut -d: -f1)
         do
            eval sed -i.bkp$(date +%d-%m-%Y) /^$usuario$/d $arqgrupos 1>/dev/null 2>/dev/null;
            mv -f $dirusuarios"*.bkp*" $dirbackupusuarios 1>/dev/null 2>/dev/null;
         done;
         echo "" && echo "Usuario removido";
         service squid reload 1>/dev/null 2>/dev/null;
         ;;
         
        [nN] ) echo "" && echo Exclusao Cancelada;
         ;;
        * ) echo "Opcao Invalida. Operacao cancelada." ;;
      esac;
   }
   echo "";
   read -p "Pressione Enter para voltar para o menu principal" OK;
    ;;
    4 ) clear;
   echo "Selecione o grupo para listar os usuarios"
   echo "$(listarGrupos)";
   echo "0) - Todos";
    #   while true
#   do
   read -p "Opcao: " opgrupo;
   case "$opgrupo" in
                [0-${#grupos[@]}] ) {
      [ $opgrupo = 0 ] && {
      clear
      echo "====================";
      echo "Listagem de Usuarios";
      echo "====================";
      echo "";
      contgrupo=0;
      for grupo in ${grupos[@]} 
      do
         eval echo "Usuarios do grupo" ${grupos[$contgrupo]};
         echo "-------------------------------";
         eval cat -n "/etc/squid/conf/users_"${grupos[$contgrupo]};
         echo "";
         echo "-------------------------------";
         (( ++contgrupo ));
         (( $contgrupo == ${#grupos[@]} )) || { tput sc ; echo "Pressione Enter para listar o proximo Grupo" ; read ok ; tput rc; tput el; };
      done;
      } || {
      clear;
      echo "====================";
      echo "Listagem de Usuarios";
      echo "====================";
      echo "";
      echo "Usuarios do grupo" ${grupos[`eval echo $(( opgrupo -1 ))`]};
      echo "--------------------------------";
      cat -n $dirusuarios"users_"${grupos[`eval echo $(( opgrupo -1 ))`]};
      echo "";
      echo "--------------------------------";
      };
      };;
      * ) echo "Opcao invalida!"
      ;;
   esac;
   echo "";
      read -p "Pressione enter para voltar ao menu principal...";
   ;;
   5 ) clear;
   echo "Bloqueio de Site";
   echo "================" && echo "";
   echo "digite a URL a ser bloqueada (OBS.: Nao digite o 'www.' Ex.: playboy.com.br ou batepapo.uol.com.br)" && echo "";
        read -p "Site: " opsite;
        [[ -z $opsite ]] || {
     echo "Selecione o grupo para efetuar o bloqueio do site"
     echo "$(listarGrupos)";
     echo "0) - Todos" && echo "";
     read -p "Opcao: " opgrupo && echo "";
          case "$opgrupo" in
                [1-${#grupos[@]}] ) {
         echo $opsite >> $dirusuarios"sites_bloqueados_""${grupos[`eval echo $(( opgrupo -1 ))`]}";
         echo "$(date +%d%m%Y) => a URL $opsite foi bloqueada para o grupo ${grupos[`eval echo $(( opgrupo -1 ))`]}" >> $logfile;
         echo "Site bloqueado para o grupo "${grupos[`eval echo $(( opgrupo -1 ))`]};
         service squid reload 1>/dev/null 2>/dev/null;
      };
      ;;
      0 ) echo $opsite >> $dirusuarios"sites_bloqueados_Geral";
          echo "Site $opsite inserido na lista de bloqueio geral!";
          echo "$(date +%d%m%Y) => a URL $opsite foi bloqueada para todos os grupos" >> $logfile;
          service squid reload 1>/dev/null 2>/dev/null;
      ;;
      * ) echo "Opcao Invalida!";
      ;;
   esac;
   };
      echo "" && read -p "Pressione enter para voltar ao menu principal...";
    ;;
    6 ) clear;
   echo "Liberar/Desbloquear Site";
   echo "========================" && echo "";
   echo "digite a URL a ser liberada/desbloqueada (OBS.: Nao digite o 'www.' Ex.: playboy.com.br ou batepapo.uol.com.br)" && echo "";
   read -p "Site: " opsite; 
        [[ -z $opsite ]] || {
     echo "$(listarGrupos)";
     echo "0) - Todos" && echo "";
     echo "Selecione o grupo para efetuar o desbloqueio/liberacao do site";
     read -p "Grupo: " opgrupo && echo "";
      case "$opgrupo" in
                [1-${#grupos[@]}] ) {
          grupo=${grupos[`eval echo $(( opgrupo -1 ))`]};
          arqgrupo=$dirusuarios"sites_bloqueados_"$grupo;
        eval sed -i.bkp$(date +%d-%m-%Y) /^$opsite$/d $arqgrupo;
        echo "$(date +%d%m%Y) => a URL $opsite foi desbloqueada para o grupo $grupo" >> $logfile;
        echo $opsite >> $dirusuarios"sites_liberados_"$grupo;
        echo "Site liberado para o grupo $grupo";
        service squid reload 1>/dev/null 2>/dev/null;
      } ;;
      0 ) {
        eval sed -i.bkp$(date +%d%m%Y) /^$opsite$/d $dirusuarios"sites_bloqueados_Geral";
        echo "$(date +%d%m%Y) => a URL $opsite foi desbloqueada para todos os gruposo" >> $logfile;
        echo $opsite >> $dirusuarios"sites_liberados_Geral";
        echo "Site liberado para todos!";
        echo "$(date +%d%m%Y) => a URL $opsite foi liberada para todos os gruposo" >> $logfile;
        service squid reload 1>/dev/null 2>/dev/null;
      } ;;
      * ) echo "Opcao Invalida!";
      ;;
   esac;
   mv -f $dirusuarios"*.bkp*" $arqbackupusuarios 1>/dev/null 2>/dev/null;
   };
   echo "" && read -p "Pressione Enter para voltar ao Menu Principal..";
    ;; 
    7 ) clear;
   echo "Listagem de sites";
   echo "=================";
   echo "Deseja listar os sites (L)iberados ou (B)loqueados?";
   read -p "Opcao: " oplistar;
   echo "";
   listar="";
   case $oplistar in
     [Ll] ) listar=liberados;
     ;;
     [Bb] ) listar=bloqueados;
     ;;
     * ) echo "Opcao Invalida";
   esac;
   [[ ! -z $listar ]] && {   
     echo "Selecione o grupo para listar os sites $listar";
          echo "$(listarGrupos)";
          echo "0) - Todos";
          read -p "Opcao: " opgrupo;
         case "$opgrupo" in
      [1-${#grupos[@]}] ) {
         grupo=${grupos[`eval echo $(( opgrupo -1 ))`]};
         arqgrupo=$dirusuarios"sites_"$listar"_"$grupo;
         echo ">>> Sites $listar para o grupo: $grupo";
         echo "==============================";
         more $arqgrupo;
         echo "==============================" && echo "";
      } ;;
      0 ) {
         echo ">>> Sites $listar Geral";
         echo "==============================";
         more $dirusuarios"sites_"$listar"_Geral";
         echo "==============================" && echo "";
      } ;;
      * ) echo "Opcao Invalida!!!";
      ;;
     esac;
   };
   echo "" && read -p "Pressione enter para voltar ao menu principal...";
   ;;
   8 ) clear
       echo "Manutencao do SQUID"
       echo
       echo "Selecione a opcao desejada:"
       echo
      # echo "1 - Gerar relatorio de acesso agora"
       echo "1 - Limpar o cache"
       echo "2 - Reiniciar o SQUID"
       echo "3 - Parar o iptables" 
       echo "4 - Iniciar ou reiniciar o iptables"
       echo "0 - Voltar ao menu principal"
       read -p "Opcao: " op8;
       case $op8 in
#   1 ) echo "Gerando relatorio... Aguarde!"
#   data=`date -d yesterday "+%d/%m/%Y"`-`date "+%d/%m/%Y"`
#   /usr/bin/sarg -i -f /etc/sarg/sarg-daily.conf -d $data
#   echo "Operacao concluida" && sleep 2 
#   ;;
   1 ) echo "Aguarde... limpando o cache do SQUID";
   service squid stop;
   rm -fr /var/spool/squid/*;
   service squid start ;
   echo "Cache excluido com sucesso!";
   ;;
   2 ) echo "Aguarde... Reiniciando o SQUID"
   service squid restart;
   echo "SQUID reiniciado com sucesso";
   ;;
   3 ) echo "Parando o iptables..."
   service iptables stop 1>/dev/null 2>/dev/null && echo"";
   echo "O iptables foi desligado";
   ;;
   4 ) echo "Reiniciando o iptables" 
   /etc/rc.d/firewall.sh 1>/dev/null 2>/dev/null && echo"";
   echo "O iptables foi inicializado";
   ;;
   0 ) echo "Cancelando Operacao..."
   ;;
   * ) echo "Opcao Invalida";
   ;;
       esac;
   echo "" && read -p "Pressione Enter para voltar ao Menu Principal";
   ;;
   9 )  conexao=inativa
   squid=parado
   clear
       echo "Obtendo Informacoes do sistema... Aguarde!"
       #ifconfig | grep ppp0;
        ping -c 2 200.241.52.1 | grep "100% packet loss" 1>/dev/null 2>/dev/null;
   (( $? != 0)) && {
      conexao=ativa;
      ip=$(ifconfig $internet | grep inet | awk '{print $2}' | awk -F : '{print $2}');
      } || {
         echo "Aguarde! conectando..." && /etc/rc.d/velox_test.pl;
          #ifconfig | grep ppp0;
           ping -c 2 200.241.52.1 | grep "100% packet loss" 1>/dev/null 2>/dev/null;
      (( $? != 0)) && {
         conexao=ativa;
         ip=$(ifconfig $internet | grep inet | awk '{print $2}' | awk -F : '{print $2}');
         echo "Conexao estabelecida";
         echo "IP da conexao: $ip";
      };
   };
   echo "" && echo "Data do sistema: $(date +%A,\ %d\ de\ %B\ de\ %Y\ Hora:\ %H:%M)";
       echo "" && echo "Status da conexao: $conexao";
   [[ $conexao == "inativa" ]] && {
           echo "" && echo "Nao foi possivel se comunicar com o servidor da InfoNet.";
      echo "" && echo "Entre em contato com o Suporte Tecnico da InfoNet: (79) 2106-8000";
   } || {
      echo "" && echo "Conexao com a internet OK";
      echo "IP da conexao: $ip";
   };
        echo "";
   echo "-----------------"
        echo "Analise do disco:";
   echo "-----------------"
        echo "Tamanho total do HD: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f2)";
        echo "Espaco utilizado: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f3) = $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f5) em uso";
        echo "Espaco disponivel: $(df -h | sed 's/[ ]\+/:/g' | grep "/"$ | cut -d: -f4)"
        echo
   infhd=$(echo $(df -h | grep "/"$) | cut -d" " -f5);
   hd=$(echo $infhd | cut -d" " -f2 | cut -d% -f1);
        (( $hd >= 95 )) && {
      echo "" && echo "Atencao! pouco espaco em disco. Limpando o disco... Aguarde!";
      service squid stop;
      cp -a /var/log/squid/access.log /var/log/access.log;
      rm -f /var/log/squid/*;
      mv /var/log/access.log /var/log/squid/access.log;
      rm -rf /var/spool/squid/*;
      service squid start;
      echo "" && echo "Limpeza de disco efetuada com sucesso..."
        };
   echo "";
        service squid status | grep "morto" 1>/dev/null 2>/dev/null;
   (( $? != 0 )) && {
      echo "SQUID esta rodando";
      } || {
      echo "O SQUID esta parado. Iniciando o SQUID... Aguarde!";
      killall -9 squid;
      service squid start;
      }
        echo "" && read -p "Pressione enter para voltar ao menu principal";
   ;;
   10 ) clear
    echo "Bloqueio de MSN"
    echo""
    echo "1 - Bloquear Usuarios"
    echo "2 - Desbloquear Usuarios"
    echo "3 - Listar Usuarios Desbloqeuados"
    echo "0 - Retornar ao Menu Principal"
    read -p "Opcao: " opcaomsn && echo "";
    case $opcaomsn in
   1 ) echo "Digite o login do usuario que deseja bloquear" && echo "";
      read -p "Usuario: " usuariomsn;      
      grep '^'$usuariomsn':' $arqusuarios 1>/dev/null 2>/dev/null;
      (( $? == 0 )) && {
         echo $usuariomsn >> $dirusuarios"users_bloqueio_MSN";
         echo "$(date) => o MSN foi bloqueado para o usuario $usuariomsn">>$logfile;
         echo "";
         echo "============================"
         echo "";
         echo "Usuario $usuariomsn bloqueado para acesso ao MSN";
         echo "";
      } || echo "Usuario nao encontrado!";
   ;;
   2 ) echo "Digite o login do usuario que deseja desbloquear" && echo "";
      read -p "Usuario: " usuariomsn && echo "";
      grep '^'$usuariomsn'$' $dirusuarios"users_bloqueio_MSN" 1>/dev/null 2>/dev/null;
      (( $? == 0 )) && {
         sed -i.bkp /^$usuariomsn$/d $dirusuarios"users_bloqueio_MSN";
         echo "$(date +%d%m%Y) => o MSN foi desbloqueado para o usuario $usuariomsn">>$logfile;
         echo "";
         echo "";
         echo "Usuario $usuariomsn desbloqueado para acesso ao MSN";
      } || echo "Usuario não encontrado";
   ;;
   3 ) echo "Usuarios bloqueados para acesso ao MSN:";
      echo "=======================================";
      echo "";
      cat -n $dirusuarios"users_bloqueio_MSN" | more;
      echo "";
   ;;
   0 ) echo "Operacao Cancelada";
   ;;
   * ) echo "Opcao Invalida!";
   ;;
    esac;
    echo "";
    read -p "Pressione Enter para voltar ao Menu Principal...";
   ;;
   0 ) echo "Encerrando o script..." 
    sleep 2;
    exit;
   ;;
esac;
done

Scripts recomendados

Fazer backup de todas base de dados no PostgreSQL

Find em arquivos compactados (grep em arquivos tgz)

Atualização para KDE 3.5.1

manutenção do squid

SCRIPT PARA AUTOMAÇÃO DE ATUALIZAÇÃO EM AMBIENTE DEBIAN OU DERIVADOS.


  

Comentários
[1] Comentário enviado por foxbit3r em 29/06/2011 - 12:19h

Muito bom e se uma hora o ip 200.241.52.1 mudar?
Acho que vc poderia utilizar o logrotate no seu script.

[2] Comentário enviado por jhonsl em 29/06/2011 - 12:41h

Ok. Obrigado pela sugestão.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts