Existe uma maneira de salvar em um arquivo todas as informações do comando “free” e do comando “vmstat” incluindo o tempo?

0

Eu preciso disso a cada 2 minutos:

Meu servidor é Debian (somente modo de texto)

    
por Ed S 27.03.2017 / 23:56

1 resposta

2

Como faço para salvar a saída de free / vmstat a cada dois minutos?

Via cron , date e redirecionamento de saída .

Se você precisar da saída de free de vez em quando (nesse caso, dois minutos), esse é um trabalho ideal para cron :

The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals.

Citado no primeiro parágrafo do artigo da Wikipédia sobre cron .

free , vmstat e date

Primeiro, a saída que você deseja. Você não diz como deseja formatá-lo; por isso, se tudo o que você quer é uma data / hora e a saída inalterada, echo * funcionará bem:

$ echo -e "'date'\n\n'free'\n\n'vmstat'"
Tue 28 Mar 00:32:07 BST 2017

             total       used       free     shared    buffers     cached
Mem:      16392592   16204636     187956     280584    9257448    1249596
-/+ buffers/cache:    5697592   10695000
Swap:       964604          0     964604

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 187956 9257448 1249596    0    0   201    24  111   84  5  1 94  0  0

Se isso é realmente o que você quer. Note que free pode ser formatado em números 'legíveis por humanos', passando -h :

 $ free -h
             total       used       free     shared    buffers     cached
Mem:           15G        15G       227M       274M       8.8G       1.2G
-/+ buffers/cache:       5.5G        10G
Swap:         941M         0B       941M

* algumas pessoas podem pedir para você usar printf em vez disso, por exemplo, printf "%s\n\n%s\n\n\%s\n\n" "$(date)" "$(vmstat)" "$(free)" ). Observe que tivemos que fornecer uma opção -e para echo acima para ativar escapes de barra invertida; embora isso não seja necessário no crontab depois.

De vez em quando para um arquivo - via cron e redirecionamento

Como acima, cron executará um comando de acordo com um intervalo especificado.

No seu caso, a cada dois minutos, você pode querer algo como:

$ crontab -l

# m     h       dom     mon     dow     command
  */2   *       *       *       *       echo -e "'date'\n\n'free'\n\n'vmstat'\n" >> /home/root/free_vmstat_output.txt

Observe que crontab -l lista o conteúdo do crontab ; crontab -e abre no editor padrão.

Aqui */2 na coluna m significa ' a cada dois minutos ', o * nas outras colunas significa 'a cada hora / dia do mês / mês / dia da semana '.

O >> após o comando é um redirecionador de saída , neste caso, significa ( mais ou menos) 'acrescente esta saída ao seguinte arquivo' .

TL; DR

Se você quiser salvar a saída de date , free e vmstat em um arquivo a cada dois minutos, adicione a seguinte linha ao seu crontab (via crontab -e ):

  */2   *       *       *       *       echo "'date'\n\n'free'\n\n'vmstat'\n" >> /home/root/free_vmstat_output.txt

Leitura Adicional

Eu não sou afiliado a nenhum dos seguintes, mas eles podem ser de alguma ajuda .

por 28.03.2017 / 01:59

Tags