Comment
Author: Admin | 2025-04-28
$hd_ave_temp - $hd_ave_target); $hd_fan_mode = get_fan_mode(); printf(LOG "%6s", $hd_fan_mode); sleep 10; # pause 10s to allow fans to change speed after setting it $ave_fan_speed = get_fan_ave_speed(@hd_fan_list); printf(LOG "%6s", $ave_fan_speed); printf(LOG "%4i/%-3i", $hd_fan_duty_old, $hd_fan_duty); $cput = get_cpu_temp_ipmi(); printf(LOG "%4i %6.2f %6.2f %6.2f %6.2f%\n", $cput, $P, $I, $D, $hd_duty); } # verify_fan_speed_levels function is fairly complicated if ($cpu_temp_control) { verify_fan_speed_levels( $cpu_fan_level, $override_hd_fan_level ? $hd_fan_duty_high : $hd_fan_duty ); } else { verify_fan_speed_levels2( $hd_fan_duty ); }# if ($cpu_temp_control)# {# # CPU temps can go from cool to hot in 2 seconds! so we only ever sleep for 1 second.# sleep 1;# }# else# {# sleep $hd_polling_interval - 1;# } # CPU temps can go from cool to hot in 2 seconds! so we only ever sleep for 1 second. sleep 1; } # inf loop}################################################# SUBSsub get_hd_list{ #my $disk_list = `camcontrol devlist | grep -v "SSD" | grep -v "Verbatim" | grep -v "Kingston" | grep -v "Elements" | sed 's:.*(::;s:).*::;s:,pass[0-9]*::;s:pass[0-9]*,::' | egrep '^[a]*da[0-9]+\$' | tr '\012' ' '`; # # In Linux, `lsblk -o NAME,ROTA` will provide the drive name and rotation (0 for SSD) # Filtering on s (SATA) and a (ATA) _should_ provide us any type of spinning drive # my $disk_list = `/usr/bin/lsblk -o NAME,ROTA | egrep "^s|^a" | grep "1\$" | awk '{ print $1 }' | tr '\012' ' '`; dprint(3,"$disk_list\n"); my @vals = split(" ", $disk_list); foreach my $item (@vals) { dprint(2,"$item\n"); } return @vals;}sub get_hd_temp{ my $max_temp = 0; foreach my $item (@hd_list) { my $disk_dev = "/dev/$item"; my $command = "/usr/sbin/smartctl -A $disk_dev | grep Temperature_Celsius"; dprint( 3, "$command\n" ); my $output = `$command`; dprint( 2, "$output"); my @vals = split(" ", $output); # grab 10th item from the output, which is the hard drive temperature (on Seagate NAS HDs) my $temp = "$vals[9]"; chomp
Add Comment