Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 03% us, 10% sy, 00% ni, 987% id, 00% wa, 00% hi, 00% si
具体的解释如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
03% us 用户空间占用CPU百分比
10% sy 内核空间占用CPU百分比
00% ni 用户进程空间内改变过优先级的进程占用CPU百分比
987% id 空闲CPU百分比
00% wa 等待输入输出的CPU时间百分比
00% hi
00% si
00% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
如何利用WMI获取远程主机的磁盘信息
//创建WMI连接对象,注意引用SystemManagement命名空间,需要先在项目引用中添加,然后代码中using
ConnectionOptions conn = new ConnectionOptions();
connUsername = user; //远程主机用户名,注意,必需是管理员权限
connPassword = pwd; //密码
connAuthority = "ntlmdomain:DOMAIN"; // 这句很重要
connTimeout = new TimeSpan(1, 1, 1, 1);//连接时间
//ManagementScope 的服务器和命名空间。
string path = stringFormat(@"\\{0}\root\cimv2", address);
//表示管理 *** 作的范围(命名空间),使用指定选项初始化ManagementScope 类的、表示指定范围路径的新实例。
ManagementScope scope = new ManagementScope(path, conn);
scopeConnect(); //打开连接方法,如果执行到这里报出拒绝访问的错误,请检查目标账号是否为目标主机管理员账号,或者目标主机WMI服务是否开启
//查询
string strQuery = "select from Win32_LogicalDisk where Name = 'D:'";//查询语句,这里是查询D盘存储信息
ObjectQuery query = new ObjectQuery(strQuery);
//查询ManagementObjectCollection返回结果集
ManagementObjectSearcher wmifind = new ManagementObjectSearcher(scope, query);
long gb = 1024 1024 1024;
string type = "";
foreach (var mobj in wmifindGet()) //循环结果集
{
type = mobj["Description"]ToString();
//判断是否是本机固盘
if (type == "Local Fixed Disk")
{
int free = (int)MathRound(ConvertToDouble(mobj["FreeSpace"]) / gb, 0);//获取到可用空间
int size = (int)MathRound(ConvertToDouble(mobj["Size"]ToString()) / gb, 0);//获取到总空间
int use = size - free;//已用空间
}
}
以上,就是可以在无服务端程序的情况下,获取目标主机磁盘使用情况的代码,当然为了安全考虑,请务必做好账号和密码的加密工作
版权声明:本文为博主原创文章,转载请附上博文链接!
5月17日 19:42 1、FTP(File Transfer Protocol,文件传输协议是Internet上使用非常广泛的一种通讯协议,它是为Internet用户进行文件传输(包括文件的上传和下载)而制定的。要想实现FTP文件传输,必须在相连的两端都装有支持FTP协议的软件,装在您的电脑上的叫FTP客户端软件,装在另一端服务器上的叫做FTP服务器端软件。客户端FTP软件使用方法很简单,启动后首先要与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。目前Windows系统中最常用的FTP软件是CUTEFTP。FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它允许用户以anonymous作为用户名,以Email地址作密码来登录,从而使用户获得免费资源。
实际的 *** 作中FTP就象控制自己的硬盘一样简单
2和3、在你自己的计算机上安装Windows2000或XP自带的IIS组件及ftp相关服务即可,或者下载一个serv-u软件,这个 *** 作非常方便,新建一个用户及密码,选择一个目录,设置相关的权限后点应用,这样就设置好了FTP服务器了。>在本教程中,我们将编写一个shell脚本来监视Linux系统上的磁盘空间使用情况。当系统达到给定阈值时,它将触发邮件到相应的电子邮件ID,我们在本文中添加了四个shell脚本,每个脚本用于不同的目的。在介绍之前,我想澄清一下我注意到的关于磁盘空间使用shell脚本的一件事。
大多数用户发表评论说他们在运行磁盘空间使用脚本时收到以下错误消息:
# sh /opt/script/disk-usage-alert-oldsh
/dev/mapper/vg_2g-lv_root
test-scriptsh: line 7: [: /dev/mapper/vg_2g-lv_root: integer expression expected
/ 98G
那就对了,其实当我第一次运行脚本时,我遇到了同样的问题,后来,我找到了根本原因。
在shell脚本中使用“df -h”或“df -H”在基于RHEL 5和RHEL 6的系统上进行磁盘空间警报时,将收到上面错误消息,因为输出的格式不正确,见下面的输出。
为了解决这个问题,我们需要使用“df -Ph”(POSIX输出格式),但默认情况下“df -h”在基于RHEL 7的系统上运行正常:
# df -h
输出如下图信息:
方法一
可以使用以下shell脚本来监视Linux系统上的磁盘空间使用情况。当系统达到给定的阈值限制时,它将发送电子邮件,在此示例中,我们将阈值限制设置为60%用于测试目的,可以根据你的要求更改此限制。
如果多个文件系统达到给定的阈值限制,它将发送多个邮件,因为脚本正在使用循环。
此外,请替换你的电子邮件ID:
# vi /opt/script/disk-usage-alertsh
#!/bin/sh
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
do
echo $output
used=$(echo $output | awk '{print $1}' | sed s/%//g)
partition=$(echo $output | awk '{print $2}')
if [ $used -ge 60 ]; then
echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" ywnz@gmailcom
fi
done
输出:我收到了以下两封电子邮件提醒:
The partition "/dev/mapper/vg_2g-lv_home" on 2gCentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019
The partition "/dev/mapper/vg_2g-lv_root" on 2gCentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019
最后添加一个cronjob来自动执行此 *** 作,它将每10分钟运行一次:
# crontab -e
/10 /bin/bash /opt/script/disk-usage-alertsh
方法二
或者,可以使用以下shell脚本,与上面脚本相比,我们在此方面做了一些改动:
# vi /opt/script/disk-usage-alert-1sh
#!/bin/sh
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
do
max=60%
echo $output
used=$(echo $output | awk '{print $1}')
partition=$(echo $output | awk '{print $2}')
if [ ${used%} -ge ${max%} ]; then
echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | mail -s "Disk Space Alert: $used Used On $(hostname)" ywnz@gmailcom
fi
done
输出:我收到了以下两封电子邮件提醒:
The partition "/dev/mapper/vg_2g-lv_home" on 2gCentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019
The partition "/dev/mapper/vg_2g-lv_root" on 2gCentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019
最后添加一个cronjob来自动执行此 *** 作,它将每10分钟运行一次:
# crontab -e
/10 /bin/bash /opt/script/disk-usage-alert-1sh
方法三
非常简单明了:
/10 df -Ph | sed s/%//g | awk '{ if($5 > 60) print $0;}' | mail -s "Disk Space Alert On $(hostname)" ywnz@gmailcom
输出:我收到了一封包含所有提醒的邮件,如下图:
方法四
如果有人想监视,那么可以使用以下shell脚本,只需替换你的文件系统名称:
# vi /opt/script/disk-usage-alert-2sh
#!/bin/bash
used=$(df -Ph | grep '/dev/mapper/vg_2g-lv_dbs' | awk {'print $5'})
max=80%
if [ ${used%} -ge ${max%} ]; then
echo "The Mount Point "/DB" on $(hostname) has used $used at $(date)" | mail -s "Disk space alert on $(hostname): $used used" ywnz@gmailcom
fi
输出:我收到了以下电子邮件提醒:
The partition /dev/mapper/vg_2g-lv_dbs on 2gCentOS6 has used 82% at Mon Apr 29 06:16:14 IST 2019
最后添加一个cronjob来自动执行此 *** 作,它将每10分钟运行一次:
# crontab -e
/10 /bin/bash /opt/script/disk-usage-alert-2sh
注意:由于脚本计划每10分钟运行一次,因此你将在10分钟后收到电子邮件警报(取决于时间),比如说,如果你的系统达到825的限制,那么你将在另外5分钟内收到电子邮件警报。
相关主题
linux占用磁盘空间的脚本
新户专享福利!京东科技银票秒贴福利派送中!
京东科技
广告
linux 监控磁盘空间shell脚本邮件提醒
7下载·0评论
2018年11月9日
Linux - Shell脚本检查根目录的磁盘占用率
979阅读·0评论·3点赞
2021年6月25日
挂载存储媒体
225阅读·0评论·0点赞
2021年4月23日
df 命令
917阅读·0评论·0点赞
2019年12月17日
linux磁盘使用情况脚本,巧用shell脚本统计磁盘使用情况
367阅读·0评论·0点赞
2021年5月11日
linux检测磁盘 报警,linux服务器磁盘监控脚本分享(含报警邮件)
334阅读·0评论·0点赞
2021年5月14日
00:00
00:32
岚图梦想家,东风集团旗下电动豪华旗舰MPV,无锡首付0元起!
00:32
岚图梦想家
广告
shell:监控磁盘使用率,定时删除文件或文件夹
426阅读·0评论·0点赞
2020年11月10日
Linux三剑客grep、sed、awk(下篇)
85阅读·0评论·0点赞
2019年4月21日
Linux中执行shell脚本的4种方法总结
951阅读·0评论·0点赞
2022年1月7日
Linux编程——写一个shell程序,根据/home目录占用磁盘空间大小而输出相应语句
368阅读·1评论·0点赞
2021年11月7日
linux 磁盘空间监控脚本,linux下监控磁盘空间脚本
123阅读·0评论·0点赞
2021年5月11日
linux占用磁盘空间的脚本,监控linux中CPU 内存 磁盘数据的shell脚本(图文)
179阅读·0评论·0点赞
2021年5月11日
Linux/Unix shell 脚本监控磁盘可用空间
10下载·0评论
2021年1月20日
查询linux磁盘剩余空间脚本,linux磁盘空间报警脚本
451阅读·0评论·0点赞
2021年5月11日
查询Linux服务器磁盘空间脚本
475阅读·0评论·0点赞
2021年7月3日
linux磁盘使用情况脚本,用 Linux Shell 脚本来监控磁盘使用情况并发送邮件
90阅读·0评论·0点赞
2021年5月11日
shell-脚本-作用是发现前10个最占用磁盘空间的文件
205阅读·0评论·0点赞
2018年4月18日
linux占用磁盘空间的脚本,Linux磁盘空间被未知资源耗尽的解决方法
88阅读·0评论·0点赞
2021年5月11日
linux 磁盘空间监控脚本,Linux系统主机监控Shell脚本(流量、状况、磁盘空间、CPU和内存)
62阅读·0评论·0点赞
2021年5月11日
去首页
看看更多热门内容
我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败,
Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同小异,都是一些如何清理历史镜像文件的文章,而实际按照清理镜像文件进行一顿 *** 作,释放的内存了了,最近一次磁盘空间报警事件,镜像文件清理也就才清理了40M,完全达不到清理磁盘空间的效果。
事实上我们的镜像执行sh脚本本身包含清理垃圾镜像文件的步骤:
因此,重要事情说三遍: 当Docker镜像服务器磁盘空间不足时,首先要考虑的时服务器的日志文件、大文件等等,最后才考虑Docker镜像本身占用的磁盘内存 。
df命令用于查看磁盘分区的使用情况,了解磁盘总量及用量,默认单位为KB。
当磁盘空间报警时,我们可以使用df命令查看磁盘分区使用情况:
注意,使用df -h命令会看到Docker镜像的/var/lib/docker 目录占很多空间,其实这是假象,许多同事初次看到这个接口首先应该就是去考虑如何清理/var/lib/docker,我也不例外。
不要受/var/lib/docker 目录影响,继续分析空间占用情况。
前面通过df命名我们大致了解了我们磁盘分区内存使用情况,使用du命令可以当前目录下文件、目录在磁盘中占用的空间的大小。
来到服务器顶层目录,执行命令:
找到内存使用异常的文件夹,进入其目录依次执行du -sh ,最终找到占用内存的大文件或日志,进行清理。
分享下我在情况过程找到的大文件
通过前面df 和du配合分析清理空间后,基本就能释放服务器磁盘空间,就简单提下Docker镜像清理咯,毕竟网上一大堆。
镜像清理。
批量清除无用的镜像
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)