graphs: add NVMe disks
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 28 Oct 2018 16:56:37 +0000 (17:56 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 28 Oct 2018 16:56:37 +0000 (17:56 +0100)
Add NVMe disks to media and hardwaregraphs.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
config/rootfiles/core/125/filelists/files
html/cgi-bin/hardwaregraphs.cgi
html/cgi-bin/media.cgi
src/scripts/makegraphs

index 207ff83..47c0e77 100644 (file)
@@ -3,4 +3,7 @@ etc/issue
 etc/ssh/sshd_config
 etc/sysctl.conf
 srv/web/ipfire/cgi-bin/credits.cgi
+srv/web/ipfire/cgi-bin/hardwaregraphs.cgi
+srv/web/ipfire/cgi-bin/media.cgi
+usr/local/bin/makegraphs
 var/ipfire/langs
index f5999c8..e582acf 100644 (file)
@@ -71,6 +71,10 @@ if ( $querry[0] =~ "hwtemp"){
        print "Content-type: image/png\n\n";
        binmode(STDOUT);
        &Graphs::updatehddgraph($querry[0],$querry[1]);
+}elsif ( $querry[0] =~ "nvme?" ){
+       print "Content-type: image/png\n\n";
+       binmode(STDOUT);
+       &Graphs::updatehddgraph($querry[0],$querry[1]);
 }else{
        &Header::showhttpheaders();
        &Header::openpage($Lang::tr{'hardware graphs'}, 1, '');
@@ -93,7 +97,7 @@ if ( $querry[0] =~ "hwtemp"){
                &General::writehash("${General::swroot}/sensors/settings", \%sensorsettings);
        }
 
-       my @disks = `ls -1 /sys/block | grep -E '^sd' | sort | uniq`;
+       my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme' | sort | uniq`;
 
        foreach (@disks){
                my $disk = $_;
index 4c94d1c..5753bc3 100644 (file)
@@ -45,9 +45,9 @@ my @querry = split(/\?/,$ENV{'QUERY_STRING'});
 $querry[0] = '' unless defined $querry[0];
 $querry[1] = 'hour' unless defined $querry[1];
 
-my @devices = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`;
+my @devices = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^nvme|^xvd|^vd|^md' | sort | uniq`;
 
-if ( $querry[0] =~ "sd?" || $querry[0] =~ "mmcblk?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){
+if ( $querry[0] =~ "sd?" || $querry[0] =~ "mmcblk?" || $querry[0] =~ "nvme?n?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){
        print "Content-type: image/png\n\n";
        binmode(STDOUT);
        
index 0b56b93..b91a70e 100644 (file)
@@ -85,10 +85,17 @@ sub updatehdddata{
                my $smart_output = '';
                system("$path_smartctl -iHA /dev/$disk > /var/run/smartctl_out_hddtemp-$disk");
                if ( -e "/var/run/smartctl_out_hddtemp-".$array[$#array] ){
-                       my $hdd_output = `cat /var/run/smartctl_out_hddtemp-$array[$#array] | grep Temperature_`;
-                       my @t = split(/\s+/,$hdd_output);
-                       $temp = $t[9];
-               }else{$temp = 0;}
+                       my $hdd_nvme = `grep "NVMe Log" /var/run/smartctl_out_hddtemp-$array[$#array]`;
+                       if ( $hdd_nvme !~/NVMe Log/ ) {
+                               my $hdd_output = `cat /var/run/smartctl_out_hddtemp-$array[$#array] | grep Temperature_`;
+                               my @t = split(/\s+/,$hdd_output);
+                               $temp = $t[9];
+                       } else {
+                               my $hdd_output = `cat /var/run/smartctl_out_hddtemp-$array[$#array] | grep Temperature:`;
+                               my @t = split(/\s+/,$hdd_output);
+                               $temp = $t[1];
+                       }
+               } else { $temp = 0; }
                print "Temperature for ".$array[$#array]."->".$temp."<-\n";
                # Nur ins RDD wenn nicht 0 (sonst klappt die min Anzeige nicht)
                if ($temp){
@@ -102,7 +109,7 @@ sub updatehdddata{
 ## Update vnstat
 system ('/usr/bin/vnstat -u');
 
-my @disks = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`;
+my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme|^mmcblk|^xvd|^vd|^md' | sort | uniq`;
 system("unlink /var/run/hddstatus 2>/dev/null && touch /var/run/hddstatus");
 foreach (@disks){
        my $disk = $_;