Linux 监视系统信息的脚本:日期和时间、CPU使用率和内存

Linux 监视系统信息的脚本:日期和时间、CPU使用率和内存,linux,bash,ubuntu,virtual-machine,virtualbox,Linux,Bash,Ubuntu,Virtual Machine,Virtualbox,通过linux,我试图创建一个名为monitornsusystem.sh的shell脚本,它将系统相关信息附加到文件:systemstatus.log。我需要附加的系统信息是:当前日期和时间、CPU利用率百分比和系统内存使用率百分比。我可以从单个命令中获得所有正确的信息,但当我将它们放在一个脚本中时,它只显示括号中的内容,而不运行任何命令 #!/bin/bash sysstat=echo “date +'%d/%m/%Y %H:%M:%S' \ | echo $[100-$(vmstat 1 2

通过linux,我试图创建一个名为monitornsusystem.sh的shell脚本,它将系统相关信息附加到文件:systemstatus.log。我需要附加的系统信息是:当前日期和时间、CPU利用率百分比和系统内存使用率百分比。我可以从单个命令中获得所有正确的信息,但当我将它们放在一个脚本中时,它只显示括号中的内容,而不运行任何命令

#!/bin/bash
sysstat=echo “date +'%d/%m/%Y %H:%M:%S' \
| echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}’)]% \
| free \
| grep Mem \
| awk '{print $3/$2 * 100.0}’” >> systemstatus.log

分而治之。。。将每个值放在一行中,最后一行显示所有值。大概是这样的:

#!/bin/bash

mdate=`date +'%d/%m/%Y %H:%M:%S'`
mcpu=$[100-$(vmstat 1 2|tail -1|awk '{print $15}')]%
mmem=`free | grep Mem | awk '{print $3/$2 * 100.0}'`
echo "$mdate | $mcpu | $mmem" >> /tmp/sysstatus

我们需要看一个您期望输出的示例。另外,请在上检查您的脚本。祝你好运。
echo
的输出通过管道传输到
echo
中是没有用的。将数据传输到
免费
也没有用。#/bin/bash mdate=date+'%d/%m/%Y%H:%m:%S'mcpu=echo$[100-$(vmstat 12 | tail-1 | awk'{print$15}')]%mmem=free | grep Mem | awk'{print$3/$2*100.0}'final=echo“$mdate |$mcpu mmem”>/home/daniel/systemstatus.log非常感谢您的反馈,我在上面发布了我的最终脚本,但当我运行脚本时,它确实输出了我需要的3个系统信息,但当我运行“cat/home/daniel/systemstatus.log”作为附加信息时,我得到了“date+'%d/%m/%Y%H:%m:%S'| echo$[100-$(vmstat 12 | tail-1 | awk'{print$15}])]%| free | grep Mem | awk’etc.为什么不使用我的代码?您正在将vmstat输出管道传输到free util,这没有意义,因为free不会处理这些信息。您必须小心使用“|”。