LEDイルミネーションの修復

投稿日: Leave a comment

金曜日に年休を取ったので、朝、子供の幼稚園バスの見送りに外に出たら、植え込みのLEDイルミネーションの電線が3箇所切断されているのに気づいた。

すぐに修復したかったけど時間がなくて作業できず、今日になってやっと時間がとれたので修復。

普通のフィラメントの電球なら極性は気にしないけど、LEDなので極性に気をつけてはんだ付け。
最初はテスターで見ながら繋いでたけど、面倒になってきて、点灯状態にして、線を接触させてついた方で繋いでいった。

外で使うものなので、熱収縮チューブで絶縁・補強して修復完了。

その日の夜から今まで通りになりました。

せっかくはんだ付けするので、長さを変えられるようにコネクターでも付けようと思ったけど、絶縁不良になっても嫌なのでやめた。

ちなみに、切断面はきれいではなく、ペンチやニッパーで切ったと言う感じではなかった。所々、刃物が当たった感じの傷がついているのと、より線が引きちぎられたような切れかたをしているところから、ハサミとかカッターみたいに金属を切るようにできていない弱い刃物で無理やり切ったんじやないかと。

MyDNS更新用luaスクリプト

投稿日: Leave a comment

これまでFreeBSDのサーバーのcronで実行していたMyDNSのIPv4アドレス更新動作が途絶えていたので,RTX810のluaスクリプトに移植した.

動作は

  1. syslogからNetVolante DNSの更新を検出したらMyDNSにも更新に行く
  2. NetVolante DNSの更新が一定時間なくてもMyDNSに更新をする.

2の方は,一定時間更新がないとアカウントを消されてしまうので,そのための対処.基本的なアドレスの変更通知は1の方になる.

以下,そのスクリプト.

-- update_mydns.lua
-- polling Netvolante DNS update log with timeout

-- parameters for HTTP request
http_req = {
  url = "http://ipv4.mydns.jp/login.html",
  method = "GET",
  auth_type = "basic",
  auth_name = "mydnsxxxxxx",
  auth_pass = "xxxxxxxxxxx"
}

-- monitoring eventlog pattern
SYSLOG_PATTERN = "%[DDNS%] Update succeeded"
SYSLOG_NMATCH = 1
SYSLOG_TIME = 2 * 24 * 60 * 60

-- entry point (main)
while true do
  -- polling netvolante dns update log
  rtn, str = rt.syslogwatch(SYSLOG_PATTERN, SYSLOG_NMATCH, SYSLOG_TIME)

  -- http request for update IP address after:
  -- (1) netvolante dns update log detected
  -- (2) syslogwatch timer timed out
  rtn_http = rt.httprequest(http_req)
  rt.syslog("info", "[LUA][MyDNS] HTTP request for update IP address done")

  -- logging
  if rtn_http.code == 200 then
    if rtn > 0 and str then
      rt.syslog("info", "[LUA][MyDNS] Update succeeded (Netvolante DNS update detected)")
    else
      rt.syslog("info", "[LUA][MyDNS] Update succeeded (Force update)")
    end
  else
    rt.syslog("info", "[LUA][MyDNS] Update failed")
  end
end

これをsftpでRTX810に転送する.ユーザー権限だとファイルの書き込みができず少し悩んだが,通常のユーザー名を指定しつつも,ログインパスワードを管理者パスワードにすれば管理者権限付でログインできることが分かった.

時間間隔は以前と同様2日間隔とするが,cronと違って正確に2日間隔にはならない.が,サーバー側の負荷軽減を考えると少しずれてるくらいの方がいいと思うので,ここは特にこだわらないことにする.

このファイルを / 直下に置いて,実行してみる.

# lua /update_mydns.lua

これでPPPoEを切断してNetvolante DNSの更新をさせてみる.で,以下のようなログが記録された.

2014/01/17 12:10:42: PPPOE[01] PPPoE Connect
2014/01/17 12:10:43: PP[01] PPP/IPCP up  (Local: 125.30.x.x, Remote: x.x.x.x)
2014/01/17 12:10:43: [DDNS] netvolante-dns go PP[01] (auto)
2014/01/17 12:10:43: [DDNS] Update succeeded
2014/01/17 12:10:50: [LUA][MyDNS] HTTP request for update IP address done
2014/01/17 12:10:50: [LUA][MyDNS] Update succeeded (Netvolante DNS update detected)

あとは,起動時にスクリプトを実行するように設定して終わり.

schedule at 1 startup * lua /update_mydns.lua

WD REDのIntellipark設定

投稿日: Leave a comment

備忘録.

Ubuntuを入れている1TBのWD RED.SMARTの193 Load/Unload Cycle Countを見ると7000以上になっていて,Intelliparkのしきい値を調整してあげた方がいいような気がしたので,設定メモ.

ubuntuの場合は,以下でidle3-toolsを入れる.

# apt-get install idle3-tools

設定値の確認.生値を見るのは-g,人間の読める値で見るのは-g103とか.

# idle3ctl -g /dev/sda
Idle3 timer set to 80 (0x50)
# idle3ctl -g103 /dev/sda
Idle3 timer set to 8.0s (0x50)

8秒になっている.これを300秒に変更する.
# 8秒間HDDにアクセスがなかったからといってシステムが休んでいるとは思えないが
# 5分ならさすがに休んでいるだろうということで300秒.OFFにはしない.

設定値の変更は-sオプション.設定方法はここの一番下にあるように1-128は設定値×0.1秒,129-255は(設定値-128)×30秒.

128+300/30=138を設定すればよい.

# idle3ctl -s138 /dev/sda
Idle3 timer set to 138 (0x8a)
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!

HDDの電源オフ→オンをせよと言われる.

念のため確認.

# idle3ctl -g /dev/sda
Idle3 timer set to 138 (0x8a)
# idle3ctl -g103 /dev/sda
Idle3 timer set to 300.0s (0x8a)

ちなみに,無効にするのは-d.

# idle3ctl -h
idle3ctl v0.9.1 - Read, Set or disable the idle3 timer of Western Digital drives
Copyright (C) 2011  Christophe Bothamy

Usage: idle3ctl [options] device
Options: 
 -h : displat help
 -V : show version and exit immediately
 -v : verbose output
 --force : force even if no Western Digital HDD are detected
 -g : get raw idle3 timer value
 -g100 : get idle3 timer value as wdidle3 v1.00 value
 -g103 : get idle3 timer value as wdidle3 v1.03 value
 -g105 : get idle3 timer value as wdidle3 v1.05 value
 -d : disable idle3 timer
 -s<value> : set idle3 timer raw value