背景

最近接到一个需求要求每天巡检各台业务设备,并导出报表,但一想到设备有N台,一台台每天巡检这样的重复劳作实在是太伤神了,因此决定写一个脚本来搞定这件事。

首先,第一个要解决的问题是批量服务器执行命令的问题。

之前尝试用过pssh来进行批量服务器上执行脚本,限制较少,效果不错,各位有兴趣的可以试一下,本次为了跟上互联公司的脚步,打算用ansible对服务器进行批量操控。

至于ansible的手册介绍可以百度下,当然使用ansible的前提是你被控服务器的python 版本2.4以上,控制机的版本要在2.6以上。

ansible的安装

安装ez_setup 并执行 安装命令

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
esay_install ansible

接下来需要配置下ansible的host文件作为测试。在/etc下创建一个ansible目录。

mkdir /etc/ansible
vi /etc/ansible/hosts # hosts
[local]
127.0.0.1

然后运行下命令看看是否成功执行。

ansible  all -a "who"

如果发现是密码验证方式错误则设置一下免密登陆。

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@127.0.0.1

再测试一下该命令发现运行成功了。

至此,该问题解决。

然后,开始考虑各项服务器上的检测

   

需求一、检测服务器的瞬时CPU使用率

参考博文:http://blog.csdn.net/marising/article/details/5182771

http://blog.chinaunix.net/uid-14825809-id-2943235.html

linux基本的cpu的展示属性总共有7种

    1.idle,表示CPU闲置并等待工作分配.
    2.user,表示CPU在运行用户的进程
    3.system,表示CPU在执行kernel工作
    4.nice,表示CPU花费在被nice改变过优先级的process上的时间
    5.iowait,表示CPU等待IO操作完成的时间
    6.irq,表示CPU开销在响应硬中断上的时间
    7.softirq,表示CPU开销在响应软中断上的时间

属性较多,都很有用(load average也十分有意义),但基于报表展示精简考虑,只摘取idle所占用的时间,然后1-idle%即可求出当前cpu属性。

通过vmstat命令则可以直接查看当前的cpu,内存以及io的属性信息。

然后可以通过vmstat 1 10 来显示10s内的cpu属性值。可以简单写出脚本,一条代码搞定。

vmstat 1 10 | awk 'BEGIN{i=0}NR>2{i+=$15}END{printf("%.1f%\t",100-i/10)}'

需求二、检测服务器的瞬时内存使用率

查看当前服务器内存使用率有许多方法可以看,比如top、cat /pro/meminfo、vmstat、free或者一些图形化的工具,在此选择最简单的free来操作。

由于linux为将buffers和cached充分利用,能缓存的内容都会尽量往磁盘上缓存,所以服务器的内存使用率=free+buffers+cached

最后“-/+ buffers/cache:”这一行的内容即为当前实际的内存使用率。

统计10s内的内存数值可得如下代码。

for i in `seq 1 10`
do
free | fgrep "buffers/cache"
sleep 1
done | awk 'BEGIN{a=0;b=0}{a+=$3;b+=$3+$4}END{printf("%.1f%\t",a/b*100)}'

至此完成该需求。

需求三、监测服务器的瞬时硬盘使用率

习惯性地用df 来查看当前硬盘使用率,如图,直接查看df --total可以堪当当前硬盘的使用率

df --total | fgrep total|awk '{printf("%s\t",$5)}'

linux 服务器常规巡检并生成报表(一)的更多相关文章

  1. Linux 服务器 常规性能优化设置

    为能使linux服务器能最大化的工作,通常需要对linux的通常设置做适当的更改,而这又往往会依据服务器的类型不同,而有所变化. 对于通常的多连接的服务器其参数设置,可在 /etc/sysctl.co ...

  2. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

  3. Linux服务器数据备份恢复策略

    一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...

  4. Linux服务器部署系列之一—Apache篇(下)

    接上篇 linux服务器部署系列之一—Apache篇(上)    四.管理日志文件 Apache日志分为访问日志和错误日志两种: 1)访问日志 用于记录客户端的访问信息,文件名默认为access_lo ...

  5. Linux服务器安全配置

    众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...

  6. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

    今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMem ...

  7. Linux服务器的那些性能参数指标

    Linux服务器的那些性能参数指标 一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要, ...

  8. ue4 shooterGame 第一步 搭建git linux服务器

    1.分别在linux(服务器)上安装git.和openssh服务, 在windows(客户机)上安装cygwin,模拟linux环境以及安装windows git客户端. 2.windows的cygw ...

  9. (转)linux服务器安全配置攻略

    引言: 最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全.下面是CentOS服务器安全设置,供大家参考. ...

随机推荐

  1. Tools - 关于Network

    Tcpdump homepage - tcpdump wiki - tcpdump Wireshark homepage - wireshark wiki - wireshark Wireshark基 ...

  2. oracle jdk和openjdk区别;idea如何加载jdk源码并调试jdk代码

    两个jdk的区别 oracle jdk是sun/oracle(甲骨文)公司的,部分jdk开源:相对比较稳定,使用的比较多. openjdk是完全开源的,据说是官方oracle唯一承认的开源版本. id ...

  3. 【miscellaneous】各种音视频编解码学习详解

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  4. 高级UI-RecyclerView头部和尾部添加

    在ListView中,可以添加头部和尾部,其添加方法也是十分的简单,直接调用listview.addHeaderView(view);和listview.addFooterView(view);即可, ...

  5. redis的主从复制和哨兵模式

    Redis主从复制是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 Redis主从复制 ...

  6. C语言程序设计II—第十二周教学

    第十二周教学总结(13/5-19/5) 教学内容 本周的教学内容为:11.1 知识点:指针数组的概念.11.2 知识点:函数指针.11.3知识点:单链表的基本概念,链表节点的结构定义方法,以及单向链表 ...

  7. 乐字节Java|GC垃圾回收机制、package和import

    本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...

  8. [转帖]Cacls和ICacls

    Cacls和ICacls https://www.cnblogs.com/Aley/p/11089538.html Need Study 解释:  Cacls:显示或修改文件的访问控制列表(ACL) ...

  9. Neo4j常用的查询

    一.添加操作 1. 添加节点: create (x:学生{studentId:'1001',age:20} 2. 添加关系: 对现有的节点添加关系 match (x:学生{studentId:1001 ...

  10. FZU2018级算法第二次作业 2.10 逆序数(权值线段树)

    题目: Nk 最近喜欢上了研究逆序数,给出一个由 1…n 组成的数列 a1,a2,a3…an, a1的逆序数就是在 a2…an 中,比 a1 小的数的数量,而 a2 的逆序数就是 a3….an 中比 ...