Daemon: Libera CPU - Mata processos
Publicado por Fernando da Silva Pio 11/06/2007
[ Hits: 8.788 ]
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
Gerar lista de IPs em arquivo texto
Script para trocar textos em arquivos
Calculo da Baskara em Shell Script (Super Comentado)
TWIG, programinha básico para quem não tem muitos conhecimentos em Linux.
Conciliando ZRAM Swap com Swap em arquivo ou partição
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Dicas para encontrar games Indies diferentes e criativos
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Comunicação entre duas redes (0)
Ajuda com o Debian 13 - Video hibrido geforce 940 mx Wayland OFF (5)