سكربت BASH لطباعة حرارة الكمبيوتر

هذا سكربت BASH قد كتبته، لطباعة درجة حرارة كل من:

  • ال CPUs.
  • ال GPU.
  • ال Disks.
  • ال TINs sensors.

يمكنك تعديلها كما تريد على حسب الحاجة لتناسب نظام اللينكس الخاص بك.

لتشغيلها، يجب ان تكون جذر (root) او استعمل الـ sudo. ﻷنه يعتمد على smartctl لا يمكن تشغيله من قبل المستخدمين العاديين. الا اذا قمت بتغيير المجموعة التي تنتمي اليها الــ /sbin/smartctl الى احدى المجموعات التي تنتمي انت إليها. او عن طريق اضافة ACL اضافي الى هذا الملف.

و هذا هو مصدر الشفرة البرمجية:

#!/bin/bash
# ------------------------------------------------------------
#  Script:    systemps
# License:    GPL3
#      By:    Mubarak Alrashidi (DeaDSouL)
#  Social:    t: @_DeaDSouL_  G+: +MubarakAlrashidi
#     URL:    http://unix.cafe
# ------------------------------------------------------------
CPUS=2  # total number of CPU(s) NOT cores
TINS=(SYSTIN CPUTIN AUXTIN0 AUXTIN1 AUXTIN2 AUXTIN3)
# ------------------------------------------------------------

sensors=`sensors`

# CPU(s)
for ((i=0; i<"${CPUS}";i++)); do
        temp_cpu=`echo "${sensors}" | egrep "^Physical id ${i}" | awk '{print $4}' | cut -c '2,3'`
        echo "  CPU ${i}: ${temp_cpu}.0°C"
done; echo ''

# nVidia GPU 0
temp_gpu0=`nvidia-smi -q -d TEMPERATURE | grep 'GPU Current Temp' | awk '{print $5}'`
echo "  GPU 0: ${temp_gpu0}.0°C"; echo ''

# Disks
for i in $(lsblk | egrep ^sd | awk '{print $1}'); do
        echo "    ${i}: $(smartctl -A /dev/${i} | egrep '^194|^190' | awk '{print $10}').0°C"
done; echo ''

# SYSTIN CPUTIN AUXTIN0 AUXTIN1 AUXTIN2 AUXTIN3
for i in "${TINS[@]}"; do s=''
        temp_tin=`echo "${sensors}" | egrep "^${i}" | awk '{print $2}' | tr -d '+'`
        [[ "$i" == 'SYSTIN' || "$i" == 'CPUTIN' ]] && s=' '
        echo "${s}${i}: ${temp_tin}"
done

تستطيع ايصياً تحميلها من هنا: SysTemps_script.tar.gz

استمتع بتوزيعتك اللينكساويه 🙂

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.