J'essaie d'effacer le cache de la mémoire en utilisant cron.
Fichier cron:
*/2 * * * * ~/clear_mem.sh
clear_mem.sh:
#!/bin/sh
Sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
touch f
Le fichier f
est créé toutes les deux minutes. Mais la mémoire n'est pas effacée. Si j'appelle le script à la main, tout va bien. Pourquoi?
Étant donné que cron
exécute des commandes de manière non interactive, il est impossible pour Sudo
de s'authentifier.
Pour les commandes nécessitant une autorisation root, vous devez utiliser le fichier crontab de root (Sudo crontab -e
au lieu de plain crontab -e
), puis éviter d'utiliser Sudo
dans vos commandes et scripts.
Vous devez également indiquer le chemin complet du script - localisez-le de préférence, par exemple, dans tout le système. /usr/local/bin/clear_mem.sh
à la place de ~/clear_mem.sh