linux定时清除缓存
引言
如果你的服务器出现cache过多的情况或者服务器内存不足的情况,请参考这篇。
1、创建清除缓存shell执行脚本:cleanCache.sh
#!/bin/bash
#每天早上9点清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延时10秒
echo 3 > /proc/sys/vm/drop_caches
注意:记住你保存脚本的文件夹
这里清除缓存有3个级别,看你需求选择
echo 1 > /proc/sys/vm/drop_caches
, 只清除页面缓存;
echo 2 > /proc/sys/vm/drop_caches
,清除目录项和inode;
echo 3 > /proc/sys/vm/drop_caches
,清除页面缓存、目录项和
2、将cleanCache加入定时任务
echo '0 */2 * * * sh /home/admin/cleanCache.sh' >> /var/spool/cron/root
或者
通过命令 crontab -e
,添加完任务
其他查看定时任务命令:
crontab -l
表示列出所有的定时任务
crontab -r
表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin” ,
也可以通过crontab --help
查看帮助
定时任务未执行查看:
首先,执行service crond status
查看crond运行状态(我因为这个问题折腾了很久,结果发现状态是停止的!),如果显示 crond (pid ****) is running…,则表示运行正常,如果显示是停止的(stop),则打开此服务,service crond start
,如果显示command not found,则表示没有按照此服务,则需要安装,安装执行代码为:
yum install vixie-cron
yum install crontabs
经过运行以上两行代码,即可完成安装,然后再检查crond运行状态。