如何每两分钟保存一次free/的输出?vmstat

如何每两分钟保存一次free/的输出?vmstat

我每 2 分钟就需要一次:自由命令

我的服务器是 Debian(仅限文本模式)

答案1

如何每两分钟保存一次free/的输出?vmstat

通过crondate输出重定向

free如果你需要每隔一段时间(在本例中为两分钟)输出一次,那么这是一份理想的工作cron

软件实用程序克罗恩是类 Unix 计算机操作系统中基于时间的作业调度程序。设置和维护软件环境的人使用 cron 来安排作业(命令或 shell 脚本)在固定时间、日期或间隔定期运行。

摘自维基百科文章cron

freevmstat以及date

首先,您想要的输出。您没有说明想要如何格式化;因此,如果您想要的只是日期/时间和未改变的输出,echo* 就可以正常工作:

$ echo -e "`date`\n\n`free`\n\n`vmstat`"
2017 年 3 月 28 日星期二 00:32:07 BST

             已使用的、可用的、缓存的共享缓冲区总数
内存:16392592 16204636 187956 280584 9257448 1249596
-/+ 缓冲区/缓存:5697592 10695000
交换:964604 0 964604

进程 -----------内存---------- ---交换-- -----io---- -系统-- ------cpu-----
 rb swpd 免费 buff 缓存 si so bi bo in cs us sy id wa st
 1 0 0 187956 9257448 1249596 0 0 201 24 111 84 5 1 94 0 0

如果这确实是你想要的。请注意,free可以通过传递以下内容将其格式化为“人类可读”的数字-h

$ 免费-h
             已使用的、可用的、缓存的共享缓冲区总数
内存:15G 15G 227M 274M 8.8G 1.2G
-/+ 缓冲区/缓存:5.5G 10G
交换:941M 0B 941M

*有些人可能会告诉你使用printf而是,例如printf "%s\n\n%s\n\n\%s\n\n" "$(date)" "$(vmstat)" "$(free)")。请注意,我们必须-e在上面提供一个开关echo来启用反斜杠转义;尽管后者不需要这样做crontab

时常访问文件 - 通过cron重定向

同上,cron会按照指定的间隔执行命令。

就你的情况而言,每隔两分钟,你可能需要类似这样的内容:

$ crontab -l

# mh dom mon dow 命令
  */2 * * * * echo -e "`date`\n\n`free`\n\n`vmstat`\n" >> /home/root/free_vmstat_output.txt

请注意crontab -l列出的内容crontabcrontab -e在默认编辑器中打开它。

此处*/2m列表示“每两分钟',*其他列中的意思是‘每月每小时/每月每天/每周每天’

该命令后面>>输出重定向器,在这种情况下,它的意思是(或多或少)'将此输出附加到以下文件'

总结

如果您想要每两分钟保存一次datefreevmstattoa 文件的输出,请将以下行添加到您的 crontab(通过crontab -e):

  */2   *       *       *       *       echo "`date`\n\n`free`\n\n`vmstat`\n" >> /home/root/free_vmstat_output.txt

进一步阅读

我与以下任何组织都没有任何关系,但它们可能会有所帮助

相关内容