2016-10-28 12 views
0

基本的には、CPU周波数などの情報を素早く簡単に表示する方法を知りたいと考えています。私はそれが私が望む方法でそれを示すlinuxのための良いプログラムを知らない。だから私はスクリプトを書くことにしました。しかし、これはそれほど簡単ではないようです(私のbashの知識はあまり良くありません)。プロセッサ周波数を取得する

だから私は次のように出力を取得したいと思います:MHzのは十分だろう最初のステップのための

Core 1: 800 MHz, Temp: 30 C 
Core 2: 1500 MHz, Temp: ... 
... 

を。

これを最も簡単に行う方法を教えてください。今の私のソリューション::私が今まで持って何

:猫の/ proc/

processor : 0 
vendor_id : AuthenticAMD 
cpu family : 16 
model  : 4 
model name : AMD Phenom(tm) II X4 965 Processor 
stepping : 3 
microcode : 0x10000c8 
cpu MHz  : 800.000 
cache size : 512 KB 
physical id : 0 
siblings : 4 
core id  : 0 
cpu cores : 4 
apicid  : 0 
initial apicid : 0 
fpu  : yes 
fpu_exception : yes 
cpuid level : 5 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save 
bugs  : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs 
bogomips : 6837.89 
TLB size : 1024 4K pages 
clflush size : 64 
cache_alignment : 64 
address sizes : 48 bits physical, 48 bits virtual 
power management: ts ttp tm stc 100mhzsteps hwpstate 

processor : 1 
vendor_id : AuthenticAMD 
cpu family : 16 
model  : 4 
model name : AMD Phenom(tm) II X4 965 Processor 
stepping : 3 
microcode : 0x10000c8 
cpu MHz  : 2200.000 
cache size : 512 KB 
physical id : 0 
siblings : 4 
core id  : 1 
cpu cores : 4 
apicid  : 1 
initial apicid : 1 
fpu  : yes 
fpu_exception : yes 
cpuid level : 5 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save 
bugs  : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs 
bogomips : 6837.89 
TLB size : 1024 4K pages 
clflush size : 64 
cache_alignment : 64 
address sizes : 48 bits physical, 48 bits virtual 
power management: ts ttp tm stc 100mhzsteps hwpstate 

processor : 2 
vendor_id : AuthenticAMD 
cpu family : 16 
model  : 4 
model name : AMD Phenom(tm) II X4 965 Processor 
stepping : 3 
microcode : 0x10000c8 
cpu MHz  : 800.000 
cache size : 512 KB 
physical id : 0 
siblings : 4 
core id  : 2 
cpu cores : 4 
apicid  : 2 
initial apicid : 2 
fpu  : yes 
fpu_exception : yes 
cpuid level : 5 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save 
bugs  : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs 
bogomips : 6837.89 
TLB size : 1024 4K pages 
clflush size : 64 
cache_alignment : 64 
address sizes : 48 bits physical, 48 bits virtual 
power management: ts ttp tm stc 100mhzsteps hwpstate 

processor : 3 
vendor_id : AuthenticAMD 
cpu family : 16 
model  : 4 
model name : AMD Phenom(tm) II X4 965 Processor 
stepping : 3 
microcode : 0x10000c8 
cpu MHz  : 2200.000 
cache size : 512 KB 
physical id : 0 
siblings : 4 
core id  : 3 
cpu cores : 4 
apicid  : 3 
initial apicid : 3 
fpu  : yes 
fpu_exception : yes 
cpuid level : 5 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save 
bugs  : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs 
bogomips : 6837.89 
TLB size : 1024 4K pages 
clflush size : 64 
cache_alignment : 64 
address sizes : 48 bits physical, 48 bits virtual 
power management: ts ttp tm stc 100mhzsteps hwpstate 

cpuinfoをEDITの

CpuInfoOutput="$(cat /proc/cpuinfo)" 
ProcessorCount="$(echo "${CpuInfoOutput}" | grep processor | tail -1 | grep -o ":.*" | cut -f2- -d: | xargs)" 

ProcessorCount=$(expr $ProcessorCount + 1) 

echo "CPU Count: ${ProcessorCount}" 

for i in $(seq $ProcessorCount) 
do 
    $ProcessorId = $(expr $i - 1) 

    TODO 

    echo ${CpuInfoOutput} | grep processor | 
done 

出力

#! 

# print processor MHz values 
awk -F":" '$1~"processor"{processor=$2+1} $1~"cpu MHz"{print "Processor " processor ":\t" $2 " MHz"}' /proc/cpuinfo 

# print GPU clock value 
GPU_FREQ=$(awk -F":" '$1~"current engine" {print $2}' /sys/kernel/debug/dri/64/radeon_pm_info) 
echo -e "Graphics card:\t$GPU_FREQ" 

# print temperatures 

CPU_TEMP=$(cat /sys/class/hwmon/hwmon1/device/temp2_input) 
GFX_TEMP=$(cat /sys/class/graphics/fb0/device/hwmon/hwmon0/temp1_input) 


echo 
echo -e "CPU temp:\t$(expr $CPU_TEMP/1000)" °C 
echo -e "Graphics temp:\t$(expr $GFX_TEMP/1000)" °C 

サンプル出力

Processor 1:  800.000 MHz 
Processor 2:  800.000 MHz 
Processor 3:  800.000 MHz 
Processor 4:  800.000 MHz 
Graphics card: 675000 kHz 

CPU temp: 35 °C 
Graphics temp: 46 °C 

現在、私はGPUの周波数を読み取る方法は本当にいいです。しかし、私はLinuxからデバッグのものを使用する他の解決策を見つけられませんでした。だから私は...

+1

としてプリントアウトし、あなた可能性[編集] 'cpuinfo'の生の出力を示すあなたの質問窓のユーザーも答えようとする可能性があります。 –

+0

大きな問題は、もしcpuinfoが行く方法です...しかし、実行するでしょう – SACO

+1

これはbashスクリプトであることを強制するいくつかの厳しい要件はありますか?例えば。クイックグーグルは[this](https://pypi.python.org/pypi/py-cpuinfo)のPythonモジュールを見つけ出し、おそらくあなたが望むことをいくつかの行で行えるようになるでしょう。 –

答えて

2

をスクリプトのrootアクセス権が必要になります私はあなたがこのためにawkよりよい解決策を見つけることだと思う:ここ

awk -F":" '$1~"processor"{processor=$2+1} $1~"cpu MHz"{print "Processor #" processor " is running at " $2 "mhz"}' /proc/cpuinfo 

awkはコロン:によって/proc/cpuinfoからの出力を分割しています。第1フィールドに「プロセッサ」という語が含まれている場合、第2フィールド$2の値を変数processorに格納します。それは、変数からプロセッサだけでなく、速度を出力し、後でその上に最初のフィールドに単語の「CPU MHz`を見つけた場合、私のシステムでは

を:。

$ awk -F":" '$1~"processor"{processor=$2+1} $1~"cpu MHz"{print "Processor #" processor " is running at " $2 "mhz"}' /proc/cpuinfo 
Processor #1 is running at 2794.500mhz 
Processor #2 is running at 1354.500mhz 
+0

パーフェクト!ありがとうございました。 – SACO

0

あなたは次のことを試すことができます私のシステムでは

grep -w 'processor\|MHz' /proc/cpuinfo | sed 'N;s/\n/,/;s/[\t|:]//g' 

を称賛、それが

processor 0,cpu MHz 2593.993 
processor 1,cpu MHz 2593.993 
processor 2,cpu MHz 2593.993 
processor 3,cpu MHz 2593.993 
関連する問題