• February 24, 2025, 11:23:37 AM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

This Forum Beta is ONLY for registered owners of D-Link products in the USA for which we have created boards at this time.

Author Topic: How to check if fan is working in dns-323  (Read 7184 times)

Ltrip

  • Level 1 Member
  • *
  • Posts: 21
How to check if fan is working in dns-323
« on: June 13, 2011, 09:07:10 PM »

I have been having some problems with my dns-323.  At first I assumed it was a drive going bad.

Now I think it might be the fan in the dns-323.  Last night I went to shut it down, and the case was very hot.

Other than observing it when it gets hot, is there a way for the system to tell me the fan is working or not?

I am on firmware 1.06.

Thanks,
Logged

Biscotte

  • Level 2 Member
  • **
  • Posts: 41
Re: How to check if fan is working in dns-323
« Reply #1 on: June 14, 2011, 12:04:05 AM »

The fan sounds like a jumbo jet (!), hence all the conversations on this board about how to make it turn down the speed when not needed. 

In the firmware (certainly FW 1.08 and above) there is an option to chose fan settings.  Turn it up to constant max.  You cannot miss the noise. 

You could also use the old motor engineer trick of putting a screwdriver with a big head pushed against the 323 box and the big blunt bit in your ear (not the sharp pointy bit!).  It acts like a stethoscope to amplify the sound.  You might try it on a hard disc first to get an idea of what that sort of whirring sound it makes(to eliminate it from the other noises).

Logged

dosborne

  • Level 5 Member
  • *****
  • Posts: 598
Re: How to check if fan is working in dns-323
« Reply #2 on: June 14, 2011, 12:52:55 AM »

I simply have a script that monitors the temperature every hour. The system temp in my case never goes over 39 as I have it set to "low/high". If the temp goes higher I have it set to email me.

I think the system will log a fan failure. Can't say as I've never had one.

A piece of ribbon taped so it hangs over the opening would indicate air flow.
Logged
3 x DNS-323 with 2 x 2TB WD Drives each for a total of 12 TB Storage and Backup. Running DLink Firmware v1.08 and Fonz Fun Plug (FFP) v0.5 for improved software support.

happyhere

  • Level 3 Member
  • ***
  • Posts: 178
Re: How to check if fan is working in dns-323
« Reply #3 on: June 18, 2011, 04:06:12 AM »

hi dosborne.. can you share your fan script?
thanks
Logged

dosborne

  • Level 5 Member
  • *****
  • Posts: 598
Re: How to check if fan is working in dns-323
« Reply #4 on: June 18, 2011, 09:12:41 AM »

I run this on my Linux server, its Perl, so it is pretty generic.
Code: [Select]
#!/usr/bin/perl
# This script extracts some NAS properties from the status page
require "/home/d/diplomcy/data/common.pl.cfg";

@LANip = ("192.168.1.40","192.168.1.41"); # IP address of the NAS server(s)
push(@LANip,"192.168.1.42");
$aPort = "81"; # Port value for the admin page
$bPort = "80"; # Backup (default) port to try if the primary is unreachable

# flags: 0=off 1=on
$logger = 1; # Log status to syslog
$debug = 0; # Detailed output
if ("$ARGV[0]" eq "debug") { $debug = 1; print "Debug mode enabled\n"; }

$version = "$0";
$version =~ s/(.*\/)//ig;

use LWP::UserAgent;

foreach $LANip(@LANip) {
  $capacity = "";
  $ncap = 0;
  $freespace = "";
  $nfree = 0;
  $percent = "";
  $temperature = "";
  $sync = "";
  $uptime = "";
  $uPort = $aPort;
  &get_nas_info;
  if (($freespace>0) && ($capacity>0)) { $percent = int(($freespace/$capacity)*100); }

  $logtext=$version.": NAS ".$LANip.":".$uPort;
  if (length($capacity)>0)            { $logtext.=" Size:".$capacity."GB"; } else { $logtext.=" Size:unknown"; }
  if ($freespace>0)                   { $logtext.=" Free:".$freespace."GB"; }
  if (($freespace>0) && ($percent>0)) { $logtext.=" [$percent%]"; }
  if (length($temperature)>0)         { $logtext.=" Temp:".$temperature; }
  if (length($sync)>0)                { $logtext.=" Sync:".$sync; $uptime = ""; }
  if (length($uptime)>0)              { $logtext.=" Up:".$uptime; }

  if ("$ARGV[0]" eq "status") { `/usr/bin/logger "$logtext"`; }
  print $date_exp." ".$logtext."\n";
}

exit;

sub get_nas_info {
  $ua = LWP::UserAgent->new(timeout=>15);
  $url = "http://".$LANip.":".$uPort."/web/status/device_status.asp";
  $req = HTTP::Request->new(GET => $url);
  $result = $ua->request($req);
  unless ($result->is_success) {
#    print "Could not connect to port ".$aPort.", trying ".$bPort."\n";
    $uPort = $bPort;
    $url = "http://".$LANip.":".$uPort."/web/status/device_status.asp";
    $req = HTTP::Request->new(GET => $url);
    $result = $ua->request($req);
      unless ($result->is_success) {
      $text = "Can't get to $url -- ".$result->status_line;
      if ($logger eq 1) { `/usr/bin/logger "$version: $text"`; }
      die "$text";
    }
  }

  $text = $result->as_string;
  @responses = split /(\r|\n)/, $text;

  foreach $response(@responses) {
    chomp($response);
    $response =~ s/\s\s/ /ig;
    if (($debug eq 1) && (length($response)>1)) { print "-> ".$response."\n"; }

    #->  var temper="109:43";
    if ($response =~ m/temper="/) {
#      $response =~ s/.*temper="//ig; # Strip leading text
#      $response =~ s/";/°C\)/ig;     # Insert Celsius indicator
#      $response =~ s/:/°F\(/ig;      # Insert Farenheit indicator
      $response =~ s/.*://ig;     # Strip leading text
      $response =~ s/";/°C/ig;   # Insert Celsius indicator
      $temperature = $response;
    }

    #-> <tr><td class="labelCell2">Total Hard Drive Capacity:</td><td><strong>&nbsp;983453 MB</strong></td></tr>
    if ($response =~ m/Total Hard Drive Capacity:/) {
      if (($debug gt 0) && (length($response)>1)) { print "Capacity-> ".$response."\n"; }
      $response =~ s/.*\&nbsp;//ig;                  # Strip leading text
      $response =~ s/ MB.*//ig;                      # Strip trailing text
      $response = int($response/1024);
      $response = int(($response*1000)/1024);
      $response = int(($response*1000)/1024);
      $ncap = $ncap + $response;
      if (($debug gt 0) && (length($response)>1)) { print "Capacity-> ".$response."\n"; }
#      $response =~ s/(\d{1,3}?)(?=(\d{3})+$)/$1,/g;
      $capacity = sprintf("%04d",$ncap);
    }

    #-> <tr><td class="labelCell2">Unused Space:</td><td><strong>&nbsp;707784 MB</strong></td></tr></table><hr>
    if ($response =~ m/Unused Space:/) {
      $response =~ s/.*\&nbsp;//ig;
      $response =~ s/ MB.*//ig;
      $response = int($response/1024);
      $response = int(($response*1000)/1024);
      $response = int(($response*1000)/1024);
      $nfree = $nfree + $response;
#      $response =~ s/(\d{1,3}?)(?=(\d{3})+$)/$1,/g;
      $freespace = sprintf("%04d",$nfree);
    }

    #->Sync Time Remaining:  Completed
    if ($response =~ m/Sync Time Remaining:/) {
      $response =~ s/.*\&nbsp;//ig;
      $response =~ s/\<.*//ig;
      $response =~ s/  / /ig;
      if (not $response =~ m/Completed/) {
        $sync = $response;
      }
    }

    #->System Up Time:  0 day 0 hour 1 minutes
    if ($response =~ m/ minute/) {
      $response =~ s/.*\&nbsp;//ig;
      $response =~ s/\<.*//ig;
      $response =~ s/  / /ig;
      $response =~ s/^0 day /0 days /ig;
      $response =~ s/ 0 hour / 0 hours /ig;
      $response =~ s/ 0 minute/ 0 minutes/ig;
      $response =~ s/^1 days/1 day/ig;
      $response =~ s/ 1 hours/ 1 hour/ig;
      $response =~ s/ 1 minutes/ 1 minute/ig;
      $uptime = $response;
    }

  }
}

# eof

I run it every hour and it produces output like this
Code: [Select]
Sat, 18 Jun 2011 11:00:03 EDT check_nas.pl: NAS 192.168.1.40:81 Size:0915GB Free:0504GB [55%] Temp:36°C Up:87 days 21 hours 21 minutes
Sat, 18 Jun 2011 11:00:03 EDT check_nas.pl: NAS 192.168.1.41:81 Size:2748GB Free:2608GB [94%] Temp:34°C Up:87 days 21 hours 21 minutes
Sat, 18 Jun 2011 11:00:03 EDT check_nas.pl: NAS 192.168.1.42:81 Size:3662GB Free:1781GB [48%] Temp:33°C Up:5 days 1 hour 48 minutes
Sat, 18 Jun 2011 12:00:03 EDT check_nas.pl: NAS 192.168.1.40:81 Size:0915GB Free:0504GB [55%] Temp:36°C Up:87 days 22 hours 21 minutes
Sat, 18 Jun 2011 12:00:03 EDT check_nas.pl: NAS 192.168.1.41:81 Size:2748GB Free:2608GB [94%] Temp:34°C Up:87 days 22 hours 21 minutes
Sat, 18 Jun 2011 12:00:03 EDT check_nas.pl: NAS 192.168.1.42:81 Size:3662GB Free:1781GB [48%] Temp:34°C Up:5 days 2 hours 48 minutes
Logged
3 x DNS-323 with 2 x 2TB WD Drives each for a total of 12 TB Storage and Backup. Running DLink Firmware v1.08 and Fonz Fun Plug (FFP) v0.5 for improved software support.