我想要做的是编写一个脚本,收集一些信息(例如 CPU 温度和带宽使用情况)并将其记录到文件中。
我不知道如何获取当前使用的带宽的单个样本:我发现有很多工具可以从命令行获取此信息,但其中大多数是基于 curses 的,所以我无法将它们的输出放入文件中。在这些工具中,我发现了 bmon,它具有很好的 ascii 输出。问题是这个输出不断更新,而我想要的是每个程序调用的单个“样本”。
有没有办法用 bmon 来完成这个任务,或者有人知道其他程序来完成这个任务?
答案1
幸运的是,您sysstat
已经存在并且已经在做您想做的事情。
1. 安装你的发行版的sysstat
软件包然后将以下内容添加到/etc/crontab
:
*/5 * * * * root /usr/lib/sysstat/sa1 &
5 19 * * * root /usr/lib/sysstat/sa2 -A &
2. 等待 10 分钟。利用这段时间阅读sar
手册页。
3. 尽情使用sar
。
答案2
ifconfig 将告诉您单个接口处理了多少流量,例如
tony@eightbit:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr de:ad:be:ef:00:00
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24776 errors:0 dropped:0 overruns:0 frame:0
TX packets:22892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19629330 (19.6 MB) TX bytes:3968336 (3.9 MB)
Interrupt:23 Base address:0xc000
另外,请看一下netstat -s
。
答案3
由于缺乏这样简单的工具,我前段时间写过宝马,一个简单的带宽监视器。
我将它用作后台守护进程,不断将特定接口上某个方向(上传/下载)使用的当前带宽写入文件。
./bwm --interface wlan0 --upload > /tmp/bandwidth-upload
每当我需要当前上传带宽使用情况时,我只需 cat 文件即可:
cat /tmp/bandwidth-upload
这对于监控脚本或状态栏脚本(针对 dwm、wmii 等)特别有效。