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