Linux定时释放缓存Shell脚本实现自动化运维

使用Linux服务器的用户应该都知道,Linux在使用的时候,可用内存会随着时间慢慢的变小,最终可能到80%-90%,这个时候就需要我们去人工干预,来进行魂村的释放。
本文将使用Linux的Cron定时任务结合Shell脚本来实现自动化的内存释放。
基本流程
1、编写Shell脚本,检测当前服务器的内存使用率,如果达到了我们预设的值则强制释放内存。
2、将编写好的Shel脚本,添加到Cron定时任务列表中,设置运行周期。
释放缓存的Shell脚本
如果在终端中我们通常是使用下面的命令来释放内存

sync
echo3>>/proc/sys/vm/drop_caches
sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息
echo 3 >> /proc/sys/vm/drop_caches 命令是强制释放缓存的命令

下面给出shell脚本freeMemory.sh

#!/bin/sh
#内存总量
total=$(free-m|grep Mem |awk‘{print $2}‘)
#已使用内存
used=$(free-m|grep Mem |awk‘{print $3}‘)
#内存使用率
rate=$(($used*100/$total))
time=date
echo"############$(date)###############"
#$1 is max Mem
if[$rate-gt$1]
then
echo"rate=$rate freeMemory start!"
sync
echo 3 >> /proc/sys/vm/drop_caches
echo"FreeMemory Success!"
else
echo"rate=$rate Memory is normal"
fi

1、执行命令crontab -e打开编辑定时配置文件
2、在文件的最后面添加下面的命令:

0 23 * /root/freeMemory.sh 70>>/root/freeMemoryLog.txt
上面我们设置了每天的23点执行命令我们的脚本,参数设置70,就是当检测到内存使用率大于70的时候回执行释放缓存命令,后面的>>是重定向命令吗,会将脚本的执行结果写进文件freeMemoryLog.txt中,便于我们查看。
cron是不需要重新启动的,文件保存后会自动生效。

原文地址:http://blog.51cto.com/yenokia/2085648

时间: 2024-10-10 21:33:42

Linux定时释放缓存Shell脚本实现自动化运维的相关文章

shell + ansible + gateone 自动化运维管理

目的: shell + ansible + gateone 自动化运维管理:最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行: 1.安装环境涉及软件 本次操作系统:Centos 6.5 32/64 进行测试 项目安装软件 版本 Python 2.6.6 Tornado 2.4.1 2.环境部署 2.1 安装依赖包 yum install -y python python-pip gcc python-devel setuptool python-pam opens

云计算视频教程:Linux大型网站高并发架构及自动化运维

随着互联网技术的不断进步和发展,对运维人员提出了更高的要求和挑战,如何才能将运维工作自动化,提升工作的效率?让大家学完后可以具备企业真正的大型网站搭建能力以及自动化运维的实战能力.在企业中运用zabbix监控企业数据,第一时间了解服务的运行状态,通过nginx+lvs+keeplived在企业中根据公司业务做七层负载以及四层负载. 下面给大家分享一下Linux大型网站高并发架构及自动化运维的学习内容: 01-初识ansible 02-ansible-Ad-Hoc-重点模块学习 03-ansibl

企业实战脚本案例3:批量管理自动化运维100台小规模服务器

批量管理自动化运维100台小规模服务器 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命令详解 3.脚本功能及实现过程 3.1 脚本运行环境介绍 3.2 脚本功能介绍 3.3 脚本编写思路 3.4 脚本编写案例 一.脚本背景介绍 在企业中经常会用遇到小规模的集群服务器,在日常的管理中经常会遇到重复性的动作,如更新备上百台服务器上的ssh公钥.备份上百台服务器上的/etc/passwd配置文件等等,通常情况下采用专用

大型企业服务器的自动化运维(转载)

企业主机服务器日常运维工作中,经常需要登录并以 root 方式执行系统操作,如果在主机数量少的情况下,手工方式登录并执行效率尚可,但如果主机数量庞大(如笔者运维的国外客户服务器数量达 2000+),依次对一台台服务器进行手工操作工作量巨大且出错概率与主机数量成线性增大. 本文分析了在大数量企业服务器情况下,利用 shell 管道,Java SSHD 开源包,Expect 脚本三种方式实现自动登录并执行系统运维操作,三种方式分别适用于不同的场景,可以满足绝大多数企业主机服务器自动化运维的工作内容,

自动化运维之SaltStack实践视频教程

点我开始学习: http://edu.51cto.com/course/course_id-2354.html 1      培训目标 本课程的目标是让所有参加培训的学员都可以使用SaltStack进行服务器管理,熟练使用远程执行的功能批量操作服务器,使用配置管理进行自动化安装.部署和管理.同时可以根据企业的生产需求进行自定义的开发.最后带领学员完成生产项目-使用<SaltStack进行OpenStack自动化部署>. 2      预备知识 l  熟悉Linux基本命令及系统管理. l  熟

《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf

下载地址:网盘下载 内容简介  · · · · · · 本书是一本关于Linux 命令行与shell 脚本编程的全面教程.全书分为四部分:第一部分介绍Linuxshell 命令行:第二部分介绍shell 脚本编程基础:第三部分深入探讨shell 脚本编程的高级内容:第四部分介绍如何在现实环境中使用shell 脚本.本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料. 本书内容全面,语言简练,示例丰富,适合于linux 系统管理员及Linux 爱好者阅读

&lt;&lt;linux命令行与shell脚本编程大全&gt;&gt;学习笔记(1)

一章初识linux shell 一.什么是linux 1.linux系统可大致划分为四部分: l Linux内核 l GNU工具组件 l 图形化桌面环境 l 应用软件 在linux系统里,这四部分中的每一部分都扮演着一个特别的角色,但如果将他们分开,每一部分都没太大的作用. 1)探究linux内核 Linux系统的核心是内核,内核控制着计算机系统上的所有硬件和软件,必要时分配硬件,有时需要执行软件. 内核基本负责以下四项主要功能: l 系统内存管理 l 软件程序管理 l 硬件设备管理 l 文件系

Linux Shell交互式自动化运维程序

Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装,也可以通过网络借助yum源来安装,yum源安装比较简单:我们下面借助Expect库来实现Linux交互式自动化运维操作,只需要执行脚本就可以实现自动化运维操作,不需要手动输入一些信息按确定,我们可以将交互过程写在一个脚本上,使之自动化完成.我们可以通过expect实现ssh自动登录.ftp自动登录

《Linux命令行与shell脚本编程大全》学习笔记(转)

第一部分:Linux命令行<Linux命令行与shell脚本编程大全> 第一章:初识Linux shell<Linux命令行与shell脚本编程大全> 第二章:走进shell<Linux命令行与shell脚本编程大全> 第三章:基本的bash shell命令<Linux命令行与shell脚本编程大全> 第四章:更多的bash shell命令<Linux命令行与shell脚本编程大全> 第五章:使用Linux环境变量<Linux命令行与she