Cronを使用してメモリキャッシュをクリアしようとしています。
Cronファイル:
*/2 * * * * ~/clear_mem.sh
clear_mem.sh:
#!/bin/sh
Sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
touch f
ファイルf
は2分ごとに作成されます。しかし、メモリはクリアされません。手でスクリプトを呼び出すと、すべてがうまくいきます。どうして?
cron
はコマンドを非対話的に実行するため、Sudo
が認証する方法はありません。
ルート権限を必要とするコマンドの場合、ルートのcrontab(つまり、Sudo crontab -e
の代わりにcrontab -e
)を使用し、コマンドとスクリプト内でSudo
を使用しないでください。
また、スクリプトへの完全なパスも指定する必要があります。できれば、システム全体でスクリプトを見つけてください。 /usr/local/bin/clear_mem.sh
の代わりに~/clear_mem.sh