Linux自动清理缓和Linux自动清理缓存不起作用原因(亲测有效)

1.创建文件夹

touch  /mnt/clearCache/free.sh &&  vim /mnt/clearCache/free.sh

2.编辑

#! /bin/sh
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "===========================" >> /mnt/clearCache/mem.log
date >> /mnt/clearCache/mem.log
echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /mnt/clearCache/mem.log
if [ ${free} -le 6000 ] ; 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]" >> /mnt/clearCache/mem.log
                echo "OK" >> /mnt/clearCache/mem.log
else     
                echo "Not required" >>/mnt/clearCache/mem.log
fi       
exit 1

特别注释:网上普遍的错误 导致定时任务不起作用

 正确示例:
if [ ${free} -le 6000 ] ; then

 这个判断网上大多数都是
错误示例:
if [ $free -le 6000 ] ; then  少了大阔号 错误

3. 设置定时任务

crontab -e
相关博客
https://blog.csdn.net/weixin_43054437/article/details/108772019

每隔2小时运行一次
0 */2 * * * /mnt/clearCache/free.sh

每隔一分钟执行一遍
*/1 * * * * /mnt/clearCache/free.sh

 每晚的23:56执行这个脚本。
56 23 * * * /mnt/clearCache/free.sh
cron时间表
为cron时间表添加条目, 其格式为

min hour dayofmonth month dayofweek command

分布代表分 时 天 月 星期几 数值范围分别是 0-59: 0-23 :1-31: 1-12: 0-7

记住几个特殊符号的含义:

 星号(*):代表所有可能的值,举个例子,在小时字段中,一个星号等同于每个小时;在月份字段中,一个星号则等同于每月。
 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
 正斜线( / ):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
corn时间表例子:

 * * * * * test .sh 每分钟执行一次 test .sh
 */5 * * * * test .sh 每5分钟执行一次 test .sh
 0 */2 * * * test .sh > out 每两小时执行一次test.sh并将结果存入out中
 00 00 * * * /home/rich/test.sh 每天的凌晨0:0分执行
 30 21 * * * /home/rich/test.sh 每天的21:30分执行
 15 16 * * 1 command 每周一16:15 运行命令
 00 12 1 * * command 每个月的1号的中午12:00点执行命令
 00 8* * * if [date +%d -d tomorrow = 01 ] ; then ; command 每个月的最后一天8点执行命令
可以用三字符的文本值(mon、tue、wed、thu、fri、sat、sun)或数值(0为周日,6为周六)
 来指定dayofweek表项。

4. 查看定时任务列表

crontab -l 

5. 删除任务

crontab -r

6.授权

chmod u+x /mnt/clearCache/free.sh

7.执行脚本

/sbin/service crond restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值