ubuntu 中的脚本同时获取 CPU 温度和 CPU 使用情况并保存到文件
Script in ubuntu to take CPU temperature and CPU usage in the same time and save to file
我需要在 Ubuntu 中编写脚本或命令行代码,从 lm_sensors 获取 CPU 温度和 CPU 使用率的百分比或类似的东西,这些信息我想将每次测量的日期和时间保存在 .txt 文件中。我尝试编写下面的 .sh 文件,温度有效但 CPU 用法不能正常工作,它每次只保存第一次测量。
有人可以帮我吗?
while true;
do
echo $( date '+%H:%M:%S' ): $( sensors | grep 'CPU Temperature' | sed -r 's/^.*: +(.*) +[(].*$//' ) >> temperature.txt;
echo $( date '+%H:%M:%S' ): $( top -b -n 1 | grep 'CPU:') >> cpu.txt;
sleep 1;
done
您可以这样计算 CPU 使用情况,但只能随时间推移。 cpu 用法没有存储在文件中,您必须自己计算:
cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print (-+-)*100/(-+-+-) "%"}'
如果您有 cpu 温度传感器,它位于 /sys/class/hwmon
。您需要自己弄清楚哪个是正确的,因为这取决于驱动程序。我猜是 "coretemp"。
$ cat /sys/class/hwmon/hwmon*/name
acpitz
dell_smm
coretemp
nouveau
了解以上内容后,您可以执行以下操作:
#! /bin/bash
LOG=cpu.log
while true; do
percentage=$(cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print (-+-)*100/(-+-+-) "%"}')
echo -n "$(date "+%F-%T") " >> ${LOG}
echo -n "$percentage " >> ${LOG}
cat /sys/class/hwmon/hwmon2/temp1_input >> ${LOG}
done
exit 0
``
[1] [Getting cpu usage same every time.](https://unix.stackexchange.com/questions/69185/getting-cpu-usage-same-every-time)
我需要在 Ubuntu 中编写脚本或命令行代码,从 lm_sensors 获取 CPU 温度和 CPU 使用率的百分比或类似的东西,这些信息我想将每次测量的日期和时间保存在 .txt 文件中。我尝试编写下面的 .sh 文件,温度有效但 CPU 用法不能正常工作,它每次只保存第一次测量。 有人可以帮我吗?
while true;
do
echo $( date '+%H:%M:%S' ): $( sensors | grep 'CPU Temperature' | sed -r 's/^.*: +(.*) +[(].*$//' ) >> temperature.txt;
echo $( date '+%H:%M:%S' ): $( top -b -n 1 | grep 'CPU:') >> cpu.txt;
sleep 1;
done
您可以这样计算 CPU 使用情况,但只能随时间推移。 cpu 用法没有存储在文件中,您必须自己计算:
cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print (-+-)*100/(-+-+-) "%"}'
如果您有 cpu 温度传感器,它位于 /sys/class/hwmon
。您需要自己弄清楚哪个是正确的,因为这取决于驱动程序。我猜是 "coretemp"。
$ cat /sys/class/hwmon/hwmon*/name
acpitz
dell_smm
coretemp
nouveau
了解以上内容后,您可以执行以下操作:
#! /bin/bash
LOG=cpu.log
while true; do
percentage=$(cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print (-+-)*100/(-+-+-) "%"}')
echo -n "$(date "+%F-%T") " >> ${LOG}
echo -n "$percentage " >> ${LOG}
cat /sys/class/hwmon/hwmon2/temp1_input >> ${LOG}
done
exit 0
``
[1] [Getting cpu usage same every time.](https://unix.stackexchange.com/questions/69185/getting-cpu-usage-same-every-time)