Daemon: Libera CPU - Mata processos
Publicado por Fernando da Silva Pio 11/06/2007
[ Hits: 8.668 ]
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
script de procura de arquivo simples
Pegando IP sem saber qual interface está sendo usada
Scriconnsh WPA 0.1 (que raio é isso???) - Script de Conexão Wireless WPA.
Instalar flash Player no google chromium ubuntu 14.04
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Problema com nome composto e organização na tela do yad (0)
Formatando cartão de memoria que nao formata[AJUDA] (18)
Primeira vez utilizando Linux Ubuntu 22.04 e já tenho problemas… (5)
warsaw parou de funcionar após atualização do sistema (solução) (1)