定时清理缓存
编写脚本
#! /bin/sh # 已使用的 used=`free -m | awk 'NR==2' | awk '{print $3}'` # 空闲的 free=`free -m | awk 'NR==2' | awk '{print $4}'` echo "===========================" >> /home/mem/mem.log date >> /home/mem/mem.log echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /home/mem/mem.log # 当空闲内存小于等于4g时,则清理内存 if [ $free -le 4096 ] ; then sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches used_ok=`free -m | awk 'NR==2' | awk '{print $3}'` free_ok=`free -m | awk 'NR==2' | awk '{print $4}'` echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /home/mem/mem.log echo "OK" >> /home/mem/mem.log else echo "Not required" >> /home/mem/mem.log fi exit 1
加入定时任务
crontab -e
加入(每天凌晨两点执行一次)
1 2 * * * /home/mem/clearMemCache.sh
查看定时器
crontab -l
ps:时间配置说明
43 21 * * * 每天的21:43 执行 15 05 * * * 每天的05:15 执行 0 17 * * * 每天的17:00 执行 0 17 * * 1 每周一的 17:00 执行 0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行 0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行 0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行 42 4 1 * * 毎月1日的 4:42分 执行 0 21 * * 1-6 周一到周六 21:00 执行 0,10,20,30,40,50 * * * * 每隔10分 执行 */10 * * * * 每隔10分 执行 * 1 * * * 从1:0到1:59 每隔1分钟 执行 0 1 * * * 1:00 执行 0 */1 * * * 毎时0分 每隔1小时 执行 0 * * * * 毎时0分 每隔1小时 执行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行 30 5 1,15 * * 1日 和 15日的 5:30 执行