ホーム » コンピュータ » Linux (ページ 34)

Linux」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

初のめざましじゃんけん応募

パソコンで制御できる赤外線リモコンを使って、めざましじゃんけんの自動化して、ポイントためてみました。

1408160843_640x640.JPG

かち20点、あいこ10点、まけ5点。 1回あたりのポイントの期待値は、(20+10+5)/3=11.67点。 平日3回×5日間、土曜2回の計17回。 よって、完璧にジャンケンできれば、198.33ポイント。 100点超えは簡単。

eabadge.plが動かなくなっていた

自宅サーバでは以前仕入れていた、USBで制御できる小型の電光掲示板 (eabadge)を動かしている。

データの書き込み方法は、解析して自作した Perl プログラムなんだけど、 最近掲示板の表示内容が変わっていないので色々試していたけど、 以前のプログラムが動かなくっていた。 サーバを再起動したときに、一時的に動くようになっていたので、 デバイス名などを疑っていたけど、ようやく原因が分かった。

Device::SerialPort (ver.1.04)になったために動かなくなったようだ。 シリアルポートの初期化の部分を変更したら動くようになった。

  # シリアルデバイスを初期化
- $port = Device::SerialPort->new( $device ) ;
+ $port = new Device::SerialPort( $device , 0 ) ;
$port->baudrate( 1200 ) ;
$port->databits( 8 ) ;
$port->parity( "none" ) ;
$port->stopbits( 1 ) ;
+ # ver 1.04から必須
+ $port->handshake( "none" ) ;

めざましじゃんけんの時間が変わるらしい

朝のめざましテレビ、見ていたら「めざましじゃんけん」の時間が変わるって アナウンス。ふと、学習リモコン送信機 Tira があるのを思い出し、 サーバ上でプログラム。

来週からは、6:58,7:30,7:58になるらしい。であれば、スクリプトをこれに合わせて起動しよう。

(( /etc/cron.d/tira-tv-meza ))
58 6 * * 1,2,3,4,5 user [ -x /path/tira-tv-meza.sh ] && /path/tira-tv-meza.sh
30 7 * * 1,2,3,4,5 user [ -x /path/tira-tv-meza.sh ] && /path/tira-tv-meza.sh
58 7 * * 1,2,3,4,5 user [ -x /path/tira-tv-meza.sh ] && /path/tira-tv-meza.sh

bashだと$RANDOMなんて便利な変数があるんだ….

(( /path/tira-tv-meza.sh ))
#!/bin/bash
TIRA2="/usr/local/bin/Tira-2.py"
DEVICE="--remote=regza"
SG="/usr/bin/sg"
GROUP="dialout"
if [ -x $TIRA2 ]; then
$SG $GROUP -c "$TIRA2 $DEVICE --transmit=8,8" > /dev/null 2>&1
sleep 10
RAND=$(( RANDOM%3 ))
case $RAND in
0 ) $SG $GROUP -c "$TIRA2 $DEVICE --transmit=blue,blue" > /dev/null 2>&1 ;;
1 ) $SG $GROUP -c "$TIRA2 $DEVICE --transmit=green,green" > /dev/null 2>&1 ;;
2 ) $SG $GROUP -c "$TIRA2 $DEVICE --transmit=red,red" > /dev/null 2>&1 ;;
esac
fi

Tira2で、レコーダ,チューナの電源OFF

muninで arp の出力を観測し、自宅内で動いているネットワーク機器の観測をしているけど、 よく電源をつけっぱなしにしてしまうレコーダ都チューナ。 ちょっとだけ節電させようと、Tira2を活用してみた。

以前Tira2を制御させていた時のソースが見つからないので、改めてTira2で検索したら、 Pythonで書かれた Tira-2.py を見つける。 設定のデフォルトを以下のように書き換え。

# リモコン学習情報の保存先
configs="/usr/local/etc/tira"
# Tira2のデバイス名。実体は/dev/ttyUSB1だが他のUSBと誤認をしないように
port="/dev/serial/by-id/usb-Home_Electronics_Tira-2_HE000001-if00-port0"

んで、ping の返答があるようなら、デバイスが生きているので、 "Tira-2.py –remote=デバイス –capture"で保存しておいた、電源ON/OFFのリモコン信号を送出。 仕上げで crontab を使い、夜中の2時に電源を切らせる。

#!/bin/bash
TIRA2="/usr/local/bin/Tira-2.py"
PING="/bin/ping"
# AV機器の電源が入っていたら、電源を切る
for device in vardia catvstb ; do
if $PING -q -c 1 $device >/dev/null 2>&1 ; then
$TIRA2 --remote=$device --transmit=power > /dev/null 2>&1
sleep 1
fi
done

Xmingで ssh + X forward

XmingのXサーバをインストールしていたけど、接続がうまくいってなかった。

PuTTYのplink.exeをインストールして、以下のコマンドでようやく成功。

plink -X -C -ssh userid@hostname X-command

穴探しだそうな…

子供用に時間制限付きのhttp,httpsのコンテンツフィルタを動かしているが、子供なりにいろいろ制限の詰めの甘さを突いた使い方を模索している。

時間切れになってもwiiゲームをしていたが、httpベースのフィルタなので、ゲームログイン時のhttpさえ通れば、http以外のプロトコルを使うゲーム本体は遊べるらしい。だから、ゲームをログアウトさせずに立ち上げっぱなしがテクらしい。

まだ、proxyを外すという基本的な技の発見には至っていない。(^_^)

wifiルータのパケットフィルタをサーバからon/offする技を探すか…(^_^)

自宅内のIPアドレス割り付けの見直し

自宅のネットワークは、Debian なサーバでMACアドレスを 管理して、固定IPを割り当てている。 その反面、dhcpd.conf の fixed-address の管理と、 それに合わせて 自宅内のDNSサーバの設定など、 面倒な管理もしていた。

このおかげで、子どもの端末のネットワーク利用状況の モニタリングやフィルタリングが実現できていた。 一方で、煩雑な管理から、使わなくなった古いネットワーク 機器のIPアドレスやらが、設定ファイルに残っていた。

今回、GWの暇つぶしということで、対応表から テンプレート的に設定ファイルを生成させるスクリプトを 書いてみた。んで、これに合わせてアドレスを整理してみた。

でも、整理が終わっても、30台近くのネットワーク機器があるのって、 異常だよな…(^_^;

httpsがフィルタ通ってなかった

我が家のネットワークでは、 お兄ちゃんが今年受験生になるし、夜中にフィルタで接続を切っている…つもりだったが、23:00過ぎにアクセスがある。

1404250122_497x304.png

squidでコンテンツフィルタの設定

squidから呼び出しているコンテンツフィルタじゃなく、 acl…time の設定で切ろうかと思いつつ squid.conf を見ていたら、SSL_port がフィルタを通っていない。

最近は、youtube や google は、https 使っているし、 筒抜けじゃん。

(( /etc/squid/squid.conf ))
#url_rewrite_access deny SSL_ports (コメントアウト)
url_rewrite_access deny localhost
url_rewrite_access deny !proxy_filter
url_rewrite_access allow all
url_rewrite_program /var/www-support/filter/redirector.pl

4/25朝…
パパ:23:00~動画を見た気配あるんだけど、なぜかなぁ?
兄:息抜きで見始めたら思わず….
パパ:昨日・今日と、実力診断テストだよね…

redirector側のhttps対処

前述の設定で、https の問い合わせが、redirector側のプログラムに 渡されるようになった。しかし、httpsの場合には、redirectorに渡るデータの 書式は、以下のようになる。

ホスト名:ポート番号 端末IP IDENT CONNECT

このため、少しプログラムを修正。

4/26:この変更を加えたら、アクセス禁止時間帯でも、 https通信ばかりを使っていたゲームは動いていたのに、 動かなくなったた。おかげで、子どもがすねている。

EP-706Aへのプリンタ更新

自宅のプリンタ EP-801A が、「廃インク吸収パッドが限界に達した」との エラーがでて、前回はパッドの交換を行ったけど、2度目だし色々と 新しい便利な機種もでているし、プリンタの更新とした。

ホコリの混入が嫌なので、フロント給紙・廃紙タイプで、無線印刷機能付きの 安い機種ということで、同じEPSONのEP-706Aを購入。

まずは、Windowsパソコンで、ドライバインストールやネットワークの設定などで、基本機能が 使えることを確認し、せっかくの無線印刷機能ということで、iOSのAirPrintや、 Google クラウドプリントなどを設定。 たしかに便利ではあるけれど、携帯で撮影した写真をプリンタに送るのは(実は手ブレしてた…とかで)、 ちょっと躊躇すると思う。

最後に、Linux のサーバから印刷ができるのかと、調べると Linux用のドライバも公開されている…。 プリンタ名を指定して、amd64 の *.deb パッケージをダウンロードしてインストール。 後は、プリンタの設定でネットワークのIPP経由で設定したら、簡単に設定できた。 最近は、Linuxの印刷設定って、楽だなぁ…

replaced vertical whitespace in Subject header with space

自作のScriptを動かしていたら、

replaced vertical whitespace in Subject header with space;
this will become fatal in a future version at XXXX.pl line XXX.

なんて警告メッセージが表示される。色々調べてみると原因は、 Email::MIME パッケージ。

メールは、古臭い時代の名残りもあって、メールヘッダ1行は、 「最悪でも1000文字程度(出展?)で、普通は 78 文字より長くは しないほうがいい」という規定。

使っているメールの文字は、40文字程度だけれども、Subject部は、 MIMEエンコードされるから、簡単に長くなる。

検証コードと結果

#!/usr/bin/perl
use Email::MIME ;
use Jcode ;
print Email::MIME->create(
header => [
From => 'foo@bar.com' ,
To   => 'baz@bar.com' ,
Subject => Jcode->new( "...(たっぷり)...")->mime_encode ,
] ,
attributes => {
content_type => 'text/html' ,
charset      => 'ISO-2022-JP' ,
encoding     => '7bit' ,
} ,
body => "あいうえおabcde" )->as_string ;

これを動かすと、

replaced vertical whitespace in Subject header with space;
this will become fatal in a future version at zz.pl line 5.
From: foo@bar.com
To: baz@bar.com
Subject: =?ISO-2022-JP?B?...?= =?ISO-2022-JP?B?...?=
Date: Sun, 2 Mar 2014 22:42:40 +0900
MIME-Version: 1.0
Content-Type: text/html; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
あ...de

といった結果となる。 本来なら、MIME-Encode された長い行は、vertical whitespace(\n)で 折り返される。しかし、space に置き換えられて、 きわめて長い1行となっている。

実際、Email::MIME には

改めて、Email::MIME には、以下のように書いてある。

Revision history for Perl extension Email::Simple
2.203  2014-02-14 21:56:14-05:00 America/New_York
- translate vertical whitespace in headers
into horizontal whitespace, with a warning

今まで警告メッセージが表示されていなかったのは、2/14更新だからか…

いいのか?

ということで、改行を空白に置き換えてもいいのかなぁ…メールは正しく送られてはいるんだけど…

postfix の場合は….
line_length_limit (デフォルト: 2048 bytes) …
header_size_limit (デフォルト: 102400 bytes) ….
たしかに、今時のMTAは、そんなの正しく処理するようには思うけど…

ちなみに、 line-feed を vertical whitespace と呼ぶこともあるということを、初めて知った…

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報