Limpar o cache de memória usando o Crontab

2

Estou tentando limpar o cache de memória usando o cron.

Arquivo Cron:

*/2 * * * *  ~/clear_mem.sh

clear_mem.sh:

#!/bin/sh
sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
touch f

O arquivo f é criado a cada dois minutos. Mas a memória não está desmarcada. Se eu chamo script pelas mãos, tudo está bem. Por quê?

    
por Long Smith 01.08.2016 / 03:25

1 resposta

3

Como cron executa comandos de forma não interativa, não é possível autenticar sudo .

Para comandos que exigem permissão de root, você deve usar o crontab do root (ou seja, sudo crontab -e em vez de plain crontab -e ) e, em seguida, evitar o uso de sudo em seus comandos e scripts.

Você também deve fornecer o caminho completo para o script - de preferência, localizá-lo em todo o sistema, por exemplo, /usr/local/bin/clear_mem.sh no lugar de ~/clear_mem.sh

    
por steeldriver 01.08.2016 / 03:35