File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed 
build-armbian/armbian-files/common-files/usr/bin Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ 
3+ #  配置参数
4+ THRESHOLD_TEMP=40    #  开启风扇温度阈值(°C)
5+ CHECK_INTERVAL=30    #  检查间隔(秒)
6+ FAN_CONTROL=" /sys/class/leds/FAN_GPIO/brightness" #  风扇控制文件路径
7+ 
8+ #  获取CPU温度(兼容不同系统)
9+ get_cpu_temp () {
10+     #  优先从/sys/class/thermal读取
11+     for  temp_file  in  /sys/class/thermal/thermal_zone* /temp;  do 
12+         if  [ -f  " $temp_file " ;  then 
13+             echo  $(( $(cat "$temp_file ")/ 1000 )) 
14+             return  0
15+         fi 
16+     done 
17+ 
18+     #  备选方案:使用sensors命令
19+     if  command  -v sensors > /dev/null;  then 
20+         sensors |  grep -E ' Package|Core' |  awk ' {print $3}' |  grep -oE ' [0-9]+' |  head -1
21+     else 
22+         echo  " 错误:无法读取CPU温度!" >&2 
23+         exit  1
24+     fi 
25+ }
26+ 
27+ #  控制风扇状态
28+ set_fan () {
29+     echo  $1  |  sudo tee " $FAN_CONTROL " > /dev/null
30+ }
31+ 
32+ #  主循环
33+ echo  " 启动风扇控制服务(>${THRESHOLD_TEMP} °C时开启)" 
34+ while  true ;  do 
35+     temp=$( get_cpu_temp) 
36+     
37+     if  [ " $temp " -gt  " $THRESHOLD_TEMP " ;  then 
38+         set_fan 1
39+         echo  " $( date ' +%Y-%m-%d %H:%M:%S' ) ${temp} °C > ${THRESHOLD_TEMP} °C → 风扇开启" 
40+     else 
41+         set_fan 0
42+         echo  " $( date ' +%Y-%m-%d %H:%M:%S' ) ${temp} °C ≤ ${THRESHOLD_TEMP} °C → 风扇关闭" 
43+     fi 
44+ 
45+     sleep " $CHECK_INTERVAL " 
46+ done 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments