Como executar o comando free por crontab

3

Eu quero executar este comando:

free && sync && echo 3 > /proc/sys/vm/drop_caches && free -m

pelo cron. Dessa forma eu posso liberar minha memória RAM e cache em um sistema Ubuntu.

Estou usando estas etapas:

# crontab -e
2 * * * * my_user_name /usr/bin/free free && sync && echo 3 > /proc/sys/vm/drop_$

salvar & sair

# service cron restart

Mas, quando executo free -m , nada muda. Para referência, parece algo assim:

# free -m
             total       used       free      shared    buffers     cached
Mem:          7976       5064       2911           5        169       3478
-/+ buffers/cache:       1416       6560
Swap:         8112       1264       6848
    
por Chander Kant 12.08.2015 / 08:22

1 resposta

3

Eu não tenho certeza porque você quer descartar os caches a cada hora - isso vai matar o desempenho.

Existem alguns problemas com o que você fez:

  1. Você precisa editar o crontab de root , pois não é possível gravar em /proc/sys/vm/drop_caches como usuário não raiz.
  2. Sua entrada no crontab não está correta. Deve ser:

    2 * * * * /usr/bin/free && sync && echo 3 > /proc/sys/vm/drop_caches
    

    Os campos, na ordem, são: minuto, hora, dia do mês, mês, dia da semana, comando. Você não precisa reiniciar cron após editar um crontab .

por 12.08.2015 / 09:28