Comandos Unix: ps, grep, sed, cut, awk, chmod, mysql, crontab

Anotecões aula de Sistemas Operacionais, ajustadas para virar um tutorial de como criar um script para salvar logs do uso de memória e processador por determinado processo.


Uso do VI

i para escrever
:q para sair
:wq para salvar e sair
:w <nome arquivo> para salvar como

Atividades escrever script para armazenar em arquivo a cada minuto a % de CPU e qtde de memória usada por um processo.

Ver os processos e salvar no arquivo texto o resultado:

ps -faux > arquivo.txt

ps pega os processos, grep compiz busca apenas linhas com 'compiz', sed pra apagar tudo menos a linha 1, linha 2 em diante, >> add no log.txt

ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 >> log.txt

cut serve pra cortar a string, -b corta bytes, pegando apenas do caracter (cada caracter é um byte) 16 ao 24

ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 | awk '{print $1,";",$2}' >> log.csv

ou pode-se mudar as colunas pelo awk, pegando diretamente as corretas sem usar o cut.

ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv


crontab -e para adicionar o comando, dizendo pra executar a cada minuto.

* * * * * ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv


Agora pra salvar em um banco MySQL, crie um banco chamado logs e uma tabela chamada log com dois campos decimais, uma pra cpu e outro pra memoria. criar um script Shel log_processo_mysql.sh com o sql insert:

ps aux | grep mysql | sed '2,$ d' | awk '{print "INSERT INTO log (cpu,mem) VALUES (",$3,",",$4,");"}' > /home/bolivar/log_insert.sql

mysql -u root --password='root' -D logs < /home/bolivar/log_insert.sql

De permissao de execucao pro script

chmod +x log_processo_mysql.sh

No crontab agora ficou assim.

* * * * * /home/bolivar/log_processo_mysql.sh

Pra verificar se está funcionando, acessa o mysql:

mysql -u root --password='suasenha'

depois selecione o banco:

use logs;

e execute o select:

select * from log;

pra ver os bancos:

show databases;

pra ver as tabelas, primeiro selecione o database e depois:

show tables;

pra sair do mysql:

quit

pra sair do prompt:

exit

Comentários

Postagens mais visitadas deste blog

Solução para problemas com impressora de cheque Bematech DP-20

Como bloquear Facebook Youtube no Mikrotik

Iniciar sessão automaticamente no Xubuntu 13.04