이 스크립트가 있습니다.
#!/bin/bash
# If the cache is greater than 5G, echo 3 > /proc/sys/vm/drop_caches
CACHE=`grep -w "Cached" /proc/meminfo | awk '{ print $2 }'`
if [[ $CACHE -gt 5000000 ]]
then
sh -c "echo 3 > /proc/sys/vm/drop_caches"
else
exit 0
fi
cron을 통해 실행하고 성공적으로 시작되는 것을 확인했지만 실제로는 값을 쓰지 않으며 항상 0으로 설정됩니다. 따라서 다음과 같습니다.
total used free shared buffers cached
Mem: 64382 27024 37357 0 159 7125
절대 변하지 않습니다.
수동으로 실행해도 괜찮다는 점을 추가해야 합니다. /etc/crontab
:
04 14 * * * root /bin/sh /opt/drop_caches.sh
(그냥 거기에 테스트 시간을 넣었어요).
답변1
나는 문제를 알아 냈습니다.
내가 전화를 걸었기 때문에 /bin/sh
, dash
받지 않습니다 [[ ]]
. 나는 조정했습니다 [[ ]]
.
[[ $CACHE -gt 5000000 ]]
대신 다음을 사용했습니다.
[ $CACHE -gt 5000000 ]
그리고 지금은 잘 작동하고 있습니다.