Daemon: Libera CPU - Mata processos
Publicado por Fernando da Silva Pio 11/06/2007
[ Hits: 8.615 ]
Esse daemon monitora a cada 60 segundos todos os processos e "mata" o que estiver consumindo CPU acima do valor definido no script.
Cada processo finalizado, é adicionado ao log que está em /var/log/nome_do_script.log as seguintes informações:
- Nome do processo finalizado
- PID
- Uso de CPU
- Usuário dono desse processo
- Data e hora em que foi finalizado
Esse script fiz correndo apenas para ganhar nota em um trabalho na faculdade, por isso fiquem a vontade para alterar.
#!/bin/bash # # ---------------------------------monitora_CPU.sh------------------------------------------------------+ # Monitora o consumo de CPU de cada pocesso. Finaliza o processo se o uso de CPU for # maior que o uso definido na variável LIMITE_CPU. # # Um log dos processos finalizados será criado em /var/log/nome_do_script.log # # Execute-o em bg # Desenvolvido por: Fernando Pio (fernando_pio@yahoo.com.br) #--------------------------------------------------------------------------------------------------------------+ # #Declarações Globais SCRIPT=${0##*/} ADMIN=$(whoami) PS_TEMP=$(mktemp /tmp/ps_temp.XXXX) LIMITE_CPU=80 #Verificação de Sanidade #Script Principal if [ $ADMIN = root ] ; then while ( true ) ; do ps -eo user,%cpu,pid,comm --no-headers > $PS_TEMP while read linha ; do CPU=$(echo "$linha" | cut -c10,11) if [ $CPU -gt $LIMITE_CPU ] ; then echo "Programa: $(echo "$linha" | cut -c21-)" >> /var/log/$SCRIPT.log echo "PID: $(echo "$linha" | cut -c14-19)" >> /var/log/$SCRIPT.log echo "Uso de CPU: $(echo "$linha" | cut -c10-13)%" >> /var/log/$SCRIPT.log echo "Usuário: $(echo "$linha" | cut -c1-9)" >> /var/log/$SCRIPT.log kill -9 $(echo "$linha" | cut -c14-19) if [ $? -eq 0 ] ; then echo -e "Finalizado em: $(date +'%d de %B de %Y as %H:%M:%S')\n" >> /var/log/$SCRIPT.log else echo -e -n '\e[31;1mATENCAO: \e[m' >> /var/log/$SCRIPT.log echo "Houve um erro e o programa nao pode ser finalizado!" >> /var/log/$SCRIPT.log echo -e -n '\e[33;1mOcorrido em: \e[m' >> /var/log/$SCRIPT.log echo -e "$(date +'%d de %B de %Y as %H:%M:%S')\n" >> /var/log/$SCRIPT.log fi fi done < $PS_TEMP sleep 60 done else echo "O programa so pode ser executado pelo root!" fi
Scriconnsh WPA 0.1 (que raio é isso???) - Script de Conexão Wireless WPA.
Extrair ID de jogos de PS1 e PS2
Alterando Ubuntu de UTF-8 para ISO-8859-1 (LATIN1)
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta