内存:
free 命令
free命令由procps.*.rpm提供(在Redhat系列的OS上), free命令的所有输出值都是从/proc/meminfo中读出的。
1 2 3 4 5 6 total used free shared buffers cached 1 Mem: 24677460 23276064 1401396 0 870540 12084008 2 -/+ buffers/cache: 10321516 14355944 3 Swap: 25151484 224188 24927296
第一行 是从操作系统角度讲的, total代表总内存, used代表被使用的内存, shared代表被进程共享的内存,关于buffers和cached有更精彩的解释:
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
total = used + free 即: 24677460 = 23276064 + 1401396
第二行是从程序角度讲的,
程序used = 系统used - 系统buffers - 系统cached,
即 10321516=23276064-870540-12084008
程序可用free = 系统free + 系统buffers + 系统cached,
即 14355944=1401396+870540+12084008
例:监控交换分区,如果swap超过3000M发出报警邮件。
#!/bin/bash useSwap=`free -m |tail -1 |awk '{print $3}'` if [ $useSwap -ge 3000 ]; then echo " Use swap more than 3000M, Please add memory in time" |mail -s "(Memory Warning)" ***@qq.com fi
注:要根据具体运行的程序来确定报警触发规则
CPU
uptime 或 vi /proc/cpuinfo
13:40:08 up 4:48, 1 user, load average: 0.46, 0.28, 0.15
0.46, 0.28, 0.15 分别代表1分钟,5分钟,15分钟CPU负载, 其数值n=cpu核心数表示负载刚好达到100%, 数值越大表示CPU负载越大
例: 监控CPU负载
#!/bin/bash cpus=`cat /proc/cpuinfo |grep "physical id" |wc -l` threshold=$[ $cpus - 1 ] load=`uptime |cut -d, -f 4 | cut -d: -f 2` control=`echo "$load > $threshold"|bc` #shell中小数和整数不能直接比较,要用bc计算器 if [ $control -eq 1 ];then echo " 10.1.1.183(nginx server) CPU load is too large" |mail -s "10.1.1.183(nginx server)" lianshubash.com fi
磁盘
df
常用 df -hl
例:监控磁盘使用情况
#!/bin/bash sda2DiskFree=`df -hl |grep "^/dev/sda2"|awk '{print $4}'|cut -dG -f 1` sda3DiskFree=`df -hl |grep "^/dev/sda3"|awk '{print $4}'|cut -dG -f 1` sda5DiskFree=`df -hl |grep "^/dev/sda5"|awk '{print $4}'|cut -dG -f 1` if [ $sda2DiskFree -le 100 ]; then echo " /dev/sda2 Disk space less than 100G,Please check the disk occupancy" |mail -s "(Disk Warning)" com fi if [ $sda3DiskFree -le 100 ]; then echo " /dev/sda3 Disk space less than 100G,Please check the disk occupancy" |mail -s "(Disk Warning)" com fi if [ $sda5DiskFree -le 70 ] ;then echo " /dev/sda5 Disk space less than 70G,Please check the disk occupancy" |mail -s "(Disk Warning)" com fi
du
查看文件夹的磁盘占用大小 常用 du -sh /
fdisk
查看磁盘分区 常用fdisk -l
网络流量
cat /proc/net/dev
查看网络流量情况
例 编写一个报警邮件,当主机的出口流量超过500M的时候,发送报警邮件
#!/bin/bash # outcount=`cat /proc/net/dev | grep eth1 | gawk '{print $10}'` outcheck=`echo "${outcount} > 500*1024*1024" |bc` if [ $outcheck -eq 1 ];then echo "Output on eth1 is greator than 500M." | mail -s "Network Waring" *@qq.com fi注:查看网络的其它命令 http://os.51cto.com/art/201404/435279.htm
相关推荐
Linux 系统 CPU、内存、磁盘、网络流量监控脚本 Linux 系统 CPU 监控: * 使用 `cat /proc/stat` 命令可以获取 CPU 的活动信息,该文件中的所有值都是从系统启动开始累积到当前时刻。 * 使用 `mpstat` 命令可以...
linux系统CPU,内存,磁盘,网络流量监控脚本
linux系统CPU,内存,磁盘,网络流量监控脚本实用.pdf
1. **Linux流量**:网络流量监控可以帮助管理员识别潜在的网络瓶颈,检测异常流量,以及防止DDoS攻击。通过监控进出的数据量,可以确保带宽的有效利用。 2. **CPU利用率**:CPU使用率是衡量处理器工作负载的指标。...
在Linux系统中,使用Qt库开发应用程序时,可以利用各种系统接口来获取CPU使用率、内存占用、网络流量、磁盘I/O速度以及磁盘剩余空间等关键信息。以下将详细讲解如何通过Qt来实现这些功能。 1. CPU使用率: 在Linux...
wgcloud支持显示CPU利用率、CPU温度、内存利用率、磁盘容量、磁盘IO、硬盘智能健康状态、系统负载、连接数、网卡流量、硬件系统信息等。 支持进程应用、文件、端口、服务器上的日志、docker容器、数据库、数据表等...
Linux运维监控工具(支持系统硬件信息,内存,cpu,温度,磁盘空间及IO,硬盘smart,系统负载,网络流量等监控,服务接口,大屏展示,拓扑图,进程监控,端口监控,docker监控,文件防篡改,日志监控,数据可视化,...
这些系统不仅可以监控CPU和内存使用情况,还能监控网络流量、磁盘使用率等多个方面,并支持警报通知等功能。 #### 2.4 高级日志管理 对于日志文件,建议使用更高级的日志管理系统,如Logstash、Elasticsearch、...
网络流量监控则涉及网络接口的输入输出字节数、包数和错误数。这对于识别网络拥塞、检测异常流量或者评估带宽使用情况非常有帮助。通过分析网络流量,我们可以优化网络配置,防止过度负载,并确保服务的稳定传输。 ...
`netstat`用于查看网络连接状态,`iptraf`提供实时网络流量监控,`netperf`可以测试网络带宽和吞吐量,而`tcpdump`和`tcptrace`则用于抓取和分析网络数据包。 在选择合适的监测工具时,要根据系统类型和应用需求来...
重点:所有项目都有sql文件,比其他博主项目要严谨一万倍所有项目本人亲自测试可运行使用!!有任何问题私我解决! 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私...
6. **性能指标**:除了流量监控,还可能包括CPU、内存、磁盘I/O等服务器关键性能指标的监控,确保服务器整体运行状态良好。 7. **历史数据存储与回溯**:保存一段时间内的流量数据,便于后期分析和故障排查,提供...
Linux运维监控工具,支持系统硬件信息、内存、CPU、温度、磁盘空间和IO、硬盘智能、系统负载、网络流量监控、服务接口、大屏幕显示、拓扑图、进程监控、端口监控、Docker监控、文件防篡改、日常监控等
SAR(System Activity Reporter)是一个综合性的系统性能监控工具,它不仅可以监控网络流量,还可以显示CPU、磁盘I/O、内存等多个方面的性能数据。 - **安装**: - 使用yum安装SAR:`$ yum -y install sysstat` - *...
例如,`top`或`htop`命令可以实时显示系统的整体资源使用情况,`iostat`和`iotop`则可以用来监控磁盘I/O,而`netstat`或`vnstat`则用于网络流量监控。 JMeter本身不直接提供系统资源监控功能,但可以通过以下方式...