From 69d25bb307292a4323a51ece0e42321fd908427d Mon Sep 17 00:00:00 2001 From: Andreas Hrubak Date: Wed, 2 Oct 2024 00:24:03 +0200 Subject: [PATCH] add meters --- client/common.pl | 2 +- client/meter/df | 22 ++++++++++++++++++++++ client/meter/thermal | 19 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 client/meter/df create mode 100755 client/meter/thermal diff --git a/client/common.pl b/client/common.pl index b46853e..753d146 100644 --- a/client/common.pl +++ b/client/common.pl @@ -22,7 +22,7 @@ sub file_get_int { my $path = shift; my $s = file_get_line $path; - my ($x) = $s =~ /(\d+)/; + my ($x) = $s =~ /(-?\d+)/; return $x; } diff --git a/client/meter/df b/client/meter/df new file mode 100755 index 0000000..c64f972 --- /dev/null +++ b/client/meter/df @@ -0,0 +1,22 @@ +#!/usr/bin/env perl + +require "common.pl"; + +@exclude_fstypes = (qw/devtmpfs fuse.encfs/); + +open $fh, '-|', qw/df --local --block-size=1 --output=itotal,iused,size,used,fstype,target/ or die "$0: $!\n"; +<$fh>; # consume header +while(<$fh>) +{ + chomp; + s/^\s*//; + my($itotal, $iused, $size, $used, $fstype, $target) = split /\s+/, $_, 6; + if(grep {$fstype eq $_} @exclude_fstypes) { next; } + + $DF{$target}->{'inodes'}->{'total'} = $itotal; + $DF{$target}->{'inodes'}->{'used'} = $iused; + $DF{$target}->{'bytes'}->{'total'} = $size; + $DF{$target}->{'bytes'}->{'used'} = $used; +} + +svlhk_dump(\%DF); diff --git a/client/meter/thermal b/client/meter/thermal new file mode 100755 index 0000000..f45029c --- /dev/null +++ b/client/meter/thermal @@ -0,0 +1,19 @@ +#!/usr/bin/env perl + +require "common.pl"; + +for my $path (glob "/sys/class/thermal/cooling_device*/cur_state") +{ + my ($dev) = (split /\//, $path)[4]; + $Thermal{$dev}->{'cur'} = file_get_int($path); + $path =~ s/cur_/max_/; + $Thermal{$dev}->{'max'} = file_get_int($path); +} + +for my $path (glob "/sys/class/thermal/thermal_zone*/temp") +{ + my ($dev) = (split /\//, $path)[4]; + $Thermal{$dev}->{'temp'} = file_get_int($path) / 1000; +} + +svlhk_dump(\%Thermal); -- 2.11.4.GIT