2014年10月2日木曜日

WordpressのBackWPupでfalse http statusエラーが出た際の対処

WordpressのBackWPupで以下のようなエラーが出た
The HTTP response test get a false http status (401).
ちょっと調べるとサイトにBASIC認証がかかっていると発生してしまうらしい。
認証解除すればOK、とのことだけど、認証する必要があるから認証かけてるわけで。

もうちょっと調べてみると、SettingsのNetworkにユーザIDとパスワード入れればいいらしい。

ちゃんと動いた!やったね!

2014年5月16日金曜日

PerlのFile::Tailでハマった

Perlでtail -fみたいなことがしたくて、File::Tailに辿り着いた。

サンプルを見て書いてみた。けど、何も出力されない…。
use File::Tail;
$file = File::Tail->new(name => "test.txt");

while( defined($line = $file->read)) {

  print "$line";

}
ちょっと調べてみると、マニュアルにmaxintervalなるものがある。
http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pm



maxinterval
The maximum number of seconds (real number) that will be spent sleeping. Default is 60, meaning File::Tail will never spend more than sixty seconds without checking the file.

これか。要は60秒ほど待ってしまうわけだ。
さっきのサンプルを動かして、放置しておくと1分経てば出力されていた。

なるほど。

とりあえずすぐ見たいので、maxintervalを1秒に変更すると、更新から1秒後に出力されるようになった。



ただ、本当はファイル全体を読み込んで、かつ、tail -f のようにしたい。

これは
$file->tail(-1);
すれば出来ますよ、みたいなのを見つけてやってみたけど、動かない。

マニュアルに戻ると、tailはnewのargmentsになってるので、以下のように書き換え。

use File::Tail;

$file = File::Tail->new(name => "test.txt", maxinterval => 1, tail => -1) or die("cannot tail test.txt");

while( defined($line = $file->read)) {

  print "$line";

}
ちゃんと動くようになった。

2013年2月28日木曜日

Win7で2012年12月から802.1xが繋がらない

無線LANに802.1xで繋いでいるんだけれど、Windows 7から急に繋がらなくなった。
思い当たるのはWindows Update。
でも、なかなか情報がなくて放ったらかし状態にしていたが、少し仕事が落ち着いたのでやっと調べてみることに。

ズバリこれでした。
http://serverfault.com/questions/391959/nps-eap-authentication-failing-after-windows-update


In December 2012, this issue occurred for many people when Microsoft messed up update KB931125 on December 11th 2012 by accidentally applying the root cert update to clients and servers, when it should've only been applied on clients. This added hundreds of 3rd-party root certificates to the trusted root certs list on servers, causing problems like you showed.
Took me long enough to find it, but MS has an article and fix available at KB2801679 "SSL/TLS communication problems after you install KB 931125".The faulty update has since been expired on Windows Update and WSUS, but if you've already applied it, you can clean up the root cert list by running the Fix-it provided in the article on all affected servers. 
どうやらMicrosoftがルート認証局の更新を間違って、サーバにも当ててしまったらしい。
で、大量のルート認証局の情報を送ってしまい、認証時のメッセージのサイズが肥大化し、適切なサイズにおさまらなくなって、認証失敗、と。

サーバでリンクのFix itを動かせばすぐに直りました。

解決してよかったけど…、FixもUpdateで送ってくれ、放置しないでくれ、と思ったり。

ネットワーク ポリシー サーバのイベントログが記録されない

802.1xでうまく繋げないPCがあり、なんでだろう?と調べようとしたところ、ネットワーク ポリシー サーバ(Network Policy Server, NPS)のイベントログが記録されていないことに気が付いた。

デフォルトで勝手に記録されるはずなんだけど…。

強制的に書く方法もあったので、手順通りにやってみた。
http://support.microsoft.com/kb/951005/ja

機械翻訳とはいえ、ひどい日本語だな…。
なんとなくわかるけど、コマンドを勝手に訳すのはやめてくれ。
これじゃ通らない…。
"ネットワーク ポリシー サーバ"とかやってみたが、エラーになる…。
スペースが全角かとか英語にしてみるとかやってみたけど、問題は"サーバ"じゃなくて、"サーバー"なのね。

正しくはこちら

auditpol /set /subcategory:"ネットワーク ポリシー サーバー" /success:enable /failure:enable

実は地道に

auditpol /list /category /v

でGUID出して、

auditpol /list /subcategory:{...上で取ったGUID...}

と、頑張って正しい名前を見つけたんだけど…。

しかし、こういうサービス名は訳して欲しくないなぁ…。
個人的には日本語にするんでも、表示名だけとかにして欲しいけど、「全部日本語で!」という人もいるんだろう。
Microsoftも悩ましいところかな。

2013年1月23日水曜日

perlでPicasaの写真をダウンロード

perlでPicasaウェブアルバム上の写真を取りたくなった。
CPANでモジュールを探してみたところ、ちゃんとありました。
http://search.cpan.org/~hanenkamp/Net-Google-PicasaWeb-0.11/

cpanでインストールして早速試してみる。

アルバムごとにディレクトリを作って、その下に写真をダウンロードするスクリプト。


use Net::Google::PicasaWeb;

my $service = Net::Google::PicasaWeb->new;

$service->login('YOUR USER ID','YOUR PASSWORD');

my @albums = $service->list_albums(user_id => 'YOUR USER ID');

foreach my $album (@albums) {
  print "Album ID: ", $album->entry_id, "\n";

  mkdir $album->entry_id;

  my @photos = $album->list_media_entries;
  foreach my $photo (@photos) {
    my $media_info = $photo->photo;

    my $main_photo = $media_info->content;
    print "Image URL: ", $main_photo->url, "\n";

    my $photo_data = $main_photo->fetch;
    $main_photo->fetch( file => $album->entry_id . "/" . $media_info->title );
  }
}



アルバム名の方が分かりやすいけど、日本語を使いたくなかったのでアルバムIDを使っただけなので、アルバム名の方がよければ
$album->title
を使ってください。

list_albumsで指定するuser_idは自分にアクセス権があれば他のユーザ名でもいけるらしい。試してないけど。

ALMiniumでbashのシンタックスハイライト

redmine+backlogsの環境を構築するのに、ALMiniumを利用した。
(自分でやってハマったせいもある)
https://github.com/alminium/alminium

便利になったなぁ…。
インストールに時間はかかるけど、シェルスクリプト起動しただけでほとんど終わった。

そのまま利用していたが、bashやperlのシンタックスハイライト(syntax highlight)が出来ない。
よく使うのになぁ…。

シンタックスハイライトにはcoderayというものを使っており、現在のバージョン(1.0.8)だと対応言語が少ない…。
http://coderay.rubychan.de/
1.1ではかなり増やす予定らしいが、現時点では使えない

ultravioletという似たようなツールもあり、こっちの方が圧倒的に対応言語が多いのでこっちを使ってみたかったけど、redmineのプラグインは1.3までしか対応してないし、開発も2年前くらいで止まってしまっているような感じ…。
一応、試してみたけどエラーが出てしまって、うまく行かない

coderayでなんとかするしかないかなぁ~と探してみたところ、bashのcoderayスキャナーは発見。
https://github.com/pejuko/coderay_bash
http://odd-eyed-code.org/issues/31
でも、どっちも動かなかった…。

で、発見したのがこちら。
http://www.redmine.org/boards/3/topics/29926

ここのbash.rbをダウンロードして、rubyの/coderay-1.0.8/lib/coderay/scanners入れたら、あっさり動いた!

自分の場合は、/usr/lib/ruby と /usr/lib64/ruby の両方があって、困惑したけど以下のスクリプト書いてパスを出させたらすぐ分かった。

require 'rubygems'

version = '1.0.8'

gem 'coderay', version
print Gem.bin_path('coderay', 'coderay', version)


こんな感じで動きました!

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions



2012年11月9日金曜日

Javaから表示灯を操作する

JavaからPatlite社やアイエスアイ社の警子ちゃんを操作するクラスを書いたので、公開。 SNMPでやってます(rshでも書いたけど、Linuxから動かしたらPermission deniedになってしまったので)。
https://github.com/doitnow420/snmp-tool 

あ、snmp4jのフリー版使ってます。
http://www.snmp4j.org/

赤、黄色、緑とブザーしか対応してません。
それぞれにON/OFFのステータスを持ってて、状態変化がなければSNMPは発行しない。
 秒数対応もなし。 
いろいろ足りないと思うので、適当にひな形というかサンプル程度と思って使ってください。