红联Linux门户
Linux帮助

定时释放Linux/CentOS缓存

发布时间:2016-02-12 10:14:51来源:linux网站作者:杭州山不高

定时释放Linux/CentOS缓存的脚本(yl_dropcaches)如下: 

#!/bin/bash 
used=`free -m | awk 'NR==2' | awk '{print $3}'` 
free=`free -m | awk 'NR==2' | awk '{print $4}'` 
echo "===========================" >> yl_dropcaches.log 
date >> yl_dropcaches.log 
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >>  yl_dropcaches.log 
# drop caches when the free memory less than 10G 
if [ $free -le 10000 ] ; 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 
echo "OK" >>  yl_dropcaches.log 
else 
echo "Not required" >> yl_dropcaches.log 
fi 


改为可执行(chmod +x yl_dropcaches)后,将其加入定时任务中:

echo '*/30 * * * * sh /home/yl_dropcaches' >> /var/spool/cron/root 

然后,重启一下即可(service crond restart)。


CentOS默认会将crontab设置为开启的状态;
可查看其状态或开启:service crond status/start/stop/restart/reload
可以用以下命令来操作crontab:
crontab -l #查看List 
crontab -e #编辑Edit
crontab -r #删除Remove


crontab的规则(cat /etc/crontab)如下:
# Example of job definition: 
# .---------------- minute (0 - 59) 
# |  .------------- hour (0 - 23) 
# |  |  .---------- day of month (1 - 31) 
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# |  |  |  |  | 
# *  *  *  *  * user-name command to be executed 


从左至右,每个*分别代表:分,时,日,月,周;最后为要执行的命令;

其中* / - , 这些通配符的含义为:

*  表示所有数值,如第一位使用* 表示每分钟   
/  表示每,如第一位使用 */5 表示每5分钟   
-  表示数值范围,如第二位使用2-4表示2点到4点   
,  表示离散的多个数值,如第2位使用6,8 表示6点和8点   
指定"步长":8-14/2 表示8,10,12,14   
指定列表:比如 "1,2,3,4″,"0-4,8-12″


本文永久更新地址:http://www.linuxdiyf.com/linux/18017.html