应用场景
需要维护10几台linux服务器,检查什么的内存占用情况,前期已配置ssh免密登陆,但是逐个登陆服务器调用命令free查看内存情况过于繁琐,本文讲解如何批量查看内存信息并输出到文件
实现步骤
1、首先编写一个内存使用情况检查脚本(check-cache-util.sh);
2、编写需要检查的服务器列表(iplist.txt);
3、然后通过批处理命令脚本(check-cache-main.sh)遍历ip地址列表,逐个检查内存情况;
实现方式
- 内存使用情况检测
check-cache-util.sh
#!/bin/bash
###############################
# check-cache-util.sh #
###############################
free -h
exit
echo done !
- ip地址列表
填写需要检查的服务器列表,根据实际情况调整
iplist.txt
192.168.0.101
192.168.0.102
192.168.0.103
- 批量检查服务器内存配置
check-cache-main.sh
#!/bin/bash
###############################
# check-cache-main.sh #
###############################
# 日志文件
logfile=log-`date +%Y%m%d`.log
# ip 地址列表
iplist=iplist.txt
# 函数:输出日志
function logmsg(){
echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >> $logfile
}
# 清理操作系统缓存
function checkCache(){
logmsg "check cache:$1"
ssh $1 'bash -s' < check-cache-util.sh >> $logfile 2>&1 $1
}
# 遍历ip地址列表,清理缓存
while read ip
do
echo "check cache:$ip"
checkCache $ip
done < $iplist
echo done all!
后记
当然在核心的内存检查脚本中,可以编写其它命令,实现更多自动化处理用途。