絖綛 N@i.jp  昨日:00031073
 今日:00045925
 総計:00076998
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

スカパー録画用のLS-V2.0TLからメールが届いた(その後)

録画してあるタイトルの90%ほどを別のLS-VLへムーブ


 HDD故障の予兆が出たLS-V2.0TLですが、やっと録画してあったタイトルの9割ほどを別のLS-VLに移し終わりました。とにかく1タイトルづつしかムーブできないという最悪のUIのため、何と一ヵ月もかかってしまいました。
 1タイトルづつの手作業には付き合いきれないので、何とか自動化させるためにSikuli Scriptを使うことにしました。Sikuli Scriputは画面上で行うマウスやキーボードの操作を自動で行うためのツールで、特徴的なのは画像のスナップショットを撮り、その画像とのマッチングによって動作するスクリプトを作ることで自動化すると言う点です。と言ってもピンと来ないかもしれませんので、スクリプトの例を見た方が良いかな?
 以下はLS-VLから番組をムーブする際に使ったスクリプトと、Sikuli ScriptのIDE画面です。

 スクリプト言語はPythonをベースにしたJythonと呼ばれるものです。スクリプトの中に画像が埋め込まれているのが分かるでしょうか?画像は左上にあるカメラアイコン「スクリーンショットを撮る」を使い、Webブラウザで番組ムーブを行いながら撮ったものです。例えば5行めのwait( [ムーブ(移動)する番組を選択], 60) という文は、Webブラウザの画面に「ムーブ(移動)する番組を選択」が表示されるまで60秒まで待つと言う意味です。また9行めのclick( [世界ふれあい街歩き] ) は、画面に「世界ふれあい街歩き」という画像が表示されたら、それをクリックするという意味になります。
 このスクリプトは「世界ふれあい街歩き」というタイトルのシリーズ番組を全て他のLS-VLへムーブするまで繰り返す動作をします。(実際には、もう少し色々な場合分けが必要になりましたが、コア部分はこんなモンです。)

 Sikuliスクリプトが動作する様は、勝手にマウスカーソルが移動して画像をクリックして画面が遷移していくので、見ていて結構面白いものです。このようにしてGUIで操作できる事は、ほぼSikuliで行うことができます。ただ幾つか問題もあります。

  • Sikuli ScriptはJavaで記述されているので様々なプラットフォームで動作するが、Javaのため速度はそこそこ。
  • 画像とのマッチングを画面全体で行うので動作が重い。マッチングの範囲(リージョンと言う)を指定することもできるが、何処に表示されるか一定しない場合には範囲指定できない。
  • 画像のスナップショットを撮りながら一通り実行させなければ、スクリプトが完成しない。手順を記録してスクリプト化する機能はない。
  • 画面を構成する画像に類似のものがあると、意図したものでない画像とマッチングしてしまうことがある。
  • 画面遷移が複雑で手番が多いと、スクリプトも複雑化し、かつ実行速度も遅くなる。

等々。。。


 ともあれ、何とかHDDが完全に逝ってしまう前に番組タイトルを移し終りました。まぁ、さすがに全部は無理でしたが。問題のLS-VLはバラしてHDDを交換したのですが、3年も経つと筐体のプラスチックが経年劣化しており、ハメ込みの爪部分はことごとく割れてしまいました。ファンのスリット部分も、軽く力を加えただけでパキパキ折れていきました。筐体を元どおりにハメる事が不可能になってしまったので、輪ゴムで縛っているという状態です。
 仕方ないので、これは予備機として今稼働中のLS-VLが満杯になるか再びHDDが故障でもした時のためにとっておく事にしました。

 LS-VLから抜いた逝きかけているHDDですが、朝から全セクタへの0書き込みを行わせ、6時間ほどかかってやっと終わりました。S.M.A.R.T.情報を採ってみたら、

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   126   099   006    Pre-fail  Always       -       1179965088
  3 Spin_Up_Time            0x0003   092   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       64
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       504
  7 Seek_Error_Rate         0x000f   060   060   030    Pre-fail  Always       -       85924410342
  9 Power_On_Hours          0x0032   069   069   000    Old_age   Always       -       27735
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       64
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   066   042   045    Old_age   Always   In_the_past 34 (0 180 36 19)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       62
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       64
194 Temperature_Celsius     0x0022   034   058   000    Old_age   Always       -       34 (0 19 0 0)
195 Hardware_ECC_Recovered  0x001a   032   005   000    Old_age   Always       -       1179965088
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       156517198228569
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       4256885407
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       3592578343

となっていました。197 Current_Pending_Sector は 8だったのが 0になりましたが、代替した不良セクタ5 Reallocated_Sector_Ct は最初の頃の480から 504に増えました。やはりこのまま使い続けるには不安がありますねぇ。


< 過去の記事 [ 11月の 全てのカテゴリ リスト ] 新しい記事 >

2014 calendar
11月
1
2345678
9101112131415
16171819202122
23242526272829
30


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.