答案1
如何每两分钟保存一次free
/的输出?vmstat
通过cron
,date
和输出重定向。
free
如果你需要每隔一段时间(在本例中为两分钟)输出一次,那么这是一份理想的工作cron
:
软件实用程序克罗恩是类 Unix 计算机操作系统中基于时间的作业调度程序。设置和维护软件环境的人使用 cron 来安排作业(命令或 shell 脚本)在固定时间、日期或间隔定期运行。
摘自维基百科文章cron
。
free
,vmstat
以及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
列出的内容crontab
;crontab -e
在默认编辑器中打开它。
此处*/2
的m
列表示“每两分钟',*
其他列中的意思是‘每月每小时/每月每天/每周每天’。
该命令后面>>
是输出重定向器,在这种情况下,它的意思是(或多或少)'将此输出附加到以下文件'。
总结
如果您想要每两分钟保存一次date
、free
和vmstat
toa 文件的输出,请将以下行添加到您的 crontab(通过crontab -e
):
*/2 * * * * echo "`date`\n\n`free`\n\n`vmstat`\n" >> /home/root/free_vmstat_output.txt
进一步阅读
我与以下任何组织都没有任何关系,但它们可能会有所帮助。