努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:proglang:perl:perl-006

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
documents:proglang:perl:perl-006 [2026/05/08 11:54] – ↷ documents:perl:perl-006 から documents:proglang:perl:perl-006 へページを移動しました。 k896951documents:proglang:perl:perl-006 [2026/05/17 15:06] (現在) – [バッファローのNASをシャットダウンするPerlスクリプト] k896951
行 1: 行 1:
 +
 +====== 101.バッファローのNASをシャットダウンするPerlスクリプト ======
 +
 +2011年02月18日 00時11分42秒
 +
 +
 +どうしてバックアップのスケジュール組めるのにシャットダウンのスケジュールは組めないのさー
 +
 +バッファローのNAS、安くなって手に入りやすいので、いろんな人が導入してます。筆者も最初の頃に事務所のデータを集約する入れ物としてNASを入れて以来、位置づけが色々変わりながらもずっとこれをメンテナンスしてます。いっつも障害でメンテ停止ばっかりな全社ディスクよりは信用してもらえているようです。※もちろん、きちんとしたバックアップ・過去バージョンへの戻りも可能にしてあるからこそですよ
 +
 +===== スクリプト =====
 +
 +
 +nas.pl とでもしてください。WWW::Mechanizeがインストールされている必要があります。
 +<code perl nas.pl>
 +use WWW::Mechanize;
 +
 +##            Type    IP                admin ID     passowrd
 +&shutdownNAS( 'TGL',  '192.168.1.100',  'admin',     'password');
 +&shutdownNAS( 'TGL',  '192.168.1.101',  'admin',     'password');
 +&shutdownNAS( 'HTGL', '192.168.1.102',  'admin',     'password');
 +&shutdownNAS( 'HTGL', '192.168.1.103',  'admin',     'password');
 +
 +sub shutdownNAS()
 +{
 +  my ($type,$host,$id,$pass) = @_;
 +  my $mech = WWW::Mechanize->new( noproxy=>1 );
 +
 +  printf("Shutdown $host NAS .....\n");
 +
 +  if ( $type eq 'TGL' ) {
 +    $mech->get("http://$id:$pass\@$host/cgi-bin/ts.cgi?page=maintenance&mode=shutdown&type=setup&txtClickButton=shutdown");
 +  }
 +  elsif( $type eq 'HTGL' ) {
 +    $mech->get("http://$host/cgi-bin/top.cgi");
 +
 +    $mech->form_name('frmNas');
 +    $mech->field( 'txtAuthLoginUser',     $id,           1);
 +    $mech->field( 'txtAuthLoginPassword', $pass,         1);
 +    $mech->submit();
 +
 +    $mech->form_name('frmNas');
 +    $mech->field( 'gPage',                'maintenance', 1);
 +    $mech->field( 'gMode',                'shutdown',    1);
 +    $mech->submit();
 +
 +    $mech->form_name('frmNas');
 +    $mech->field( 'gPage',                'maintenance', 1);
 +    $mech->field( 'gMode',                'shutdown',    1);
 +    $mech->field( 'gType',                'shutdown',    1);
 +    $mech->click('btnShutdownShutdownSubmit');
 +  }
 +
 +  printf("Shutdown Process end\n");
 +}
 +
 +</code>
 +
 +===== 説明 =====
 +
 +
 +shutdownNAS() でNASのWeb画面へアクセスしてシャットダウンまでの操作を自動で行わせます。
 +
 +NASのタイプに'TGL'と'HTGL'があります。
 +
 +TGLは認証にBASIC認証を使うタイプのNASの時に指定します。
 +HTGLは認証にBASIC認証を使わないタイプのNASの時に指定します。
 +
 +筆者の知っている範囲ではこんな感じ。
 +^タイプ^製品^
 +|TGL   |[[http://buffalo.jp/products/catalog/item/t/ts-tgl_r5/|TS-TGL/R5シリーズ]]|
 +|HTGL  |[[http://buffalo.jp/products/catalog/item/t/ts-htgl_r5/|TS-HTGL/R5シリーズ]]|
 +|HTGL  |[[http://buffalo.jp/products/catalog/storage/ls-wtgl_r1/|LS-WTGL/R1シリーズ]]|
 +|HTGL  |[[http://buffalo.jp/products/catalog/item/h/hs-dhgl/|HS-DHGLシリーズ]]|
 +
 +TGLは初期の製品ですね。少なくとも上記のシリーズで1種類ずつテストしたところうまくシャットダウンしてくれてます。
 +
 +===== 何に使うの? =====
 +
 +停電前の自動シャットダウン用。
 +あ?ファームにsshd仕込んでログインしてcron仕掛ければいいって?
 +自分の所有するものならそれでもいいんじゃない?
 +
 +{{tag> Perl 技術資料 NAS www スクレイピング}}
  
documents/proglang/perl/perl-006.txt · 最終更新: by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki