将VMStat数据记录到文件中

6

我正在尝试创建一些容量规划报告,其中一个要求是提供几个Unix服务器的内存使用信息。

现在我的Unix知识非常有限。我通常只是登录并运行一些脚本。

但是对于这份报告,我需要收集VMStat数据,并根据以前一周每小时的平均Vmstat数据制作报告。

那么第一个问题:VMStat是否默认记录日志?如果是,数据输出到服务器上的哪个位置?

如果没有,默认设置如何进行?

谢谢

2个回答

9

vmstat 是一个你需要运行的命令。

如果要生成一周的虚拟内存统计数据,间隔为十秒(不包括最后一个),需要执行 60,479 次 10 秒间隔的操作。

所以你需要执行的命令是:

nohup vmstat 10 604879 > myvmstatfile.dat &

这将生成一个非常大的文件 myvmstatfile.dat

编辑:RobKielty(& 将此作业放入后台,nohup 将防止任务在注销命令 shell 时挂起。如果您运行此命令,最好监视写入该文件的磁盘分区。使用 df -h /path/to/directory/where/outputfile/resides 监视磁盘空间使用情况。)

我不知道您需要如何处理数据,所以无法帮助您。

创建一个 条目(使用 crontab -e),如下所示:

0 0 * * 0  /path/to/my/vmstat_script.sh 

文件vmstat_script.sh将包含以下bash脚本命令。
#!/bin/bash
# vmstat_script.sh
vmstat 10 604879 > myvmstatfile.dat
mv myvmstatfile.dat myvmstatfile.dat.`date +%Y-%m-%d`

这将每周创建一个文件,文件名类似于myvmstatfile.dat.2012-07-01

@Rob Kielty - 为什么我觉得这将运行70天,而不是7天(604879×10÷60÷60÷24 = 70)?我漏掉了什么? - Muhamed Huseinbašić
@MuhamedHuseinbašić 我会选择除以10而不是乘以10。 - Rob Kielty
@RobKielty - 我还是不明白。这行代码:vmstat 10 604879 表示每10秒输出一行,并在输出604879行后停止。所以如果我们需要10秒钟才能输出1行,那么对于604879行,我们需要604879乘以10秒。这意味着脚本将运行6048790秒,大约相当于70天。我错在哪里了? - Muhamed Huseinbašić
@RobKielty - :D - 我不能提出建议,因为这只是一个字符编辑。这就是为什么我标记了你 - 我认为你可以在不需要批准的情况下进行编辑,因为你已经编辑过一次了。 - Muhamed Huseinbašić
1
我有机会时会看一下。编辑的努力我会给予认可。 - Rob Kielty
显示剩余2条评论

1
我用于监控Linux虚拟机指标的命令如下: nohup vmstat 10 720 | (while read; do echo "$(date +%d-%m-%Y" "%H:%M:%S) $REPLY"; done) >> nameofLogfile.log
在这里,nohup用于在后台运行进程。 它将每10秒运行一次,持续2小时。 这是生成图表和报告的最佳命令,因为时间戳将与不同的指标一起包含在日志中,以便我们可以相应地过滤日志。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接