Bash:从命令行程序中提取数据

多纳托

我知道如何获取系统中的总内存:

$ free -lm
             total       used       free     shared    
Mem:          3008       2495        513         57

我知道如何在Nginx中获取工作进程的主内存消耗(RSS):

$ ps -C nginx -O rss
  PID   RSS S TTY          TIME COMMAND
 1564  1336 S ?        00:00:00 nginx: master process /usr/sbin/nginx
 1565  1756 S ?        00:00:00 nginx: worker process
 1566  1756 S ?        00:00:00 nginx: worker process
 1567  1756 S ?        00:00:00 nginx: worker process
 1568  1756 S ?        00:00:00 nginx: worker process

现在确定在不诉诸交换的情况下我的系统可以使用多少个工作进程:

echo $((3008 * 1024))
3080192
$ echo $((3080192 / 1756))
1754

我的服务器可以处理1754个Nginx工人,而无需进行交换。但是,如果我可以在上面执行此多步骤过程并将其设置为可以从命令行执行的一行,那将是很好的。

我的问题是我不知道如何从命令行的free命令中提取“ 3008”。我该如何解决?

毛林草坪

我的问题是我不知道如何从命令行的free命令中提取“ 3008”

鉴于此输出:

free -lm
             total       used       free     shared    buffers     cached
Mem:          3757       1765       1991        138        122        766
Low:          3757       1765       1991
High:            0          0          0
-/+ buffers/cache:        876       2880
Swap:         7772          0       7772


尝试这个:

free -lm | grep '^Mem' | awk '{ print $2 }'
3757

它将返回total中的Mem:列。就我而言3757

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章