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

コンピュータ」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

香港からのアクセス制限解除

自宅サーバは、少しでも危険な攻撃を避けるために、国ごとのIPアドレスの配布状況にあわせアクセス拒否をしている。

しかし、明日からの香港での学会参加に合わせ、アクセス拒否の設定を外した。一時的だけどね。

 

eRemote mini ファームウェア更新

eRemote mini の更新トラブル

部屋の赤外線リモコンでの家電制御のために買っていた、LinkJapan さんの eRemote mini だけど、ファームウェア更新(v55)が出ていたので、更新作業。ただ、更新を始めても、更新されない状態が続いていた。メーカー側の対応が終わったのか、ようやく更新に成功。

{CAPTION}

LED照明のON/OFF

LinkJapan のスマホアプリの eHome や、自宅サーバからの制御に登録をしてみた。

ただ、LED照明は、リモコンの POWER ボタンを押す度に、ON→常夜灯→OFF→ON と変化する。このため、「照明を消す」を登録しても常夜灯に変化し、もう一度「照明をつける」とOFFになる。サーバ制御であれば、「照明をつける」にPOWER✕1回、「照明を消す」にPOWER✕2回で登録すれば、ひとまずは騙せるけど…

google-home → IFTTT → サーバでON/OFF の場合、発話の自由度が低いので eHome に照明として登録した方が、操作は楽。

また、ベッドの照明のリモコンも eHome に登録したけど、これは eHome 設置場所と照明間の距離があって、動かなかった。(x_x;;

apachectl graceful で segfault part2

以前、apachectl graceful を実行すると、segfault で子プロセスが止まっていて、php7.3 に 統一したら、なぜかしら問題解決をしていたが、症状が再発。

また、mbstring で segfault が発生している。

解決しないので、/etc/logrotate.d/apache2 を修正

/var/log/apache2/*.log {
   :
   postrotate
      if invoke-rc.d apache2 status > /dev/null 2>&1; then ¥
         invoke-rc.d apache2 stop   > /dev/null 2>&1; ¥
         invoke-rc.d apache2 start  > /dev/null 2>&1; ¥
      fi ;
   endscript
}

ケーブルネットのG-240W-B更新

2018/10/31 に丹南ケーブルテレビのメンテナンスがあったようだけど、どうやらルータ G-240W-B のファームウェアが IPv6 の関係で更新があったようだ。設定画面がなんか変わってる。ただし、IPv6 機能はまだ使えない。

ただ、これに合わせ、我が家では、DMZ の設定と、ポートフォワーディングの設定をしているけど、どうも変。DMZの宛先は VPN ルータ宛にして、http,https,smtp,ssmtp…といったサービスだけ、ポートフォワーディングで自宅サーバのつながった内部ルータに通している。

G-240W-B の設定画面が変わっていて、ポートフォワーディングの設定が無いので、外部からは Web が見えないはずなんだけど、今までどおり見える。試しに、G-240W-B のポートフォワーディングの画面で設定をしようとすると、設定が重複しているというエラーメッセージ。今までどおり動いているし設定が見えないだけらしい。

でも、この状態では、ネットワークの設定を変更したくなっても、変更できないじゃん。

自室のLED照明

2F居室にLED照明

自室の蛍光灯が劣化し暗くなってきた。子供部屋はすでにLED照明に切り替え済みだけど、これを契機に居室もLED照明に変えた。明るさや色調を変えたりON/OFFのできる赤外線リモコン付きなので、早々に学習リモコン eremote RM mini に記憶させる。

Google Homeで照明ON/OFF

ここまでくると、Web でのリモコン機能に追加し、さらに Google Home から IFTTT を経由した音声での照明 ON/OFF まで設定してみた。

ただ、単純な”照明”という単語は、Google Home で特別扱いされるので、”LED照明をつける/けす” で音声を登録した。ただし、これでも音声認識の精度が低く、失敗することも多い。うーむ。

@ezweb.ne.jp とお別れ

@au.com が使える

2018年5月から au では、@au.com のメールドメインが使えるようになっている。サービスの開始早々から、今まで使っていた @ezweb.ne.jp のアドレスと同じ物を申請し、携帯のメールアドレスは切り替え済み。ただ、ezweb 宛のメールも一部残っている可能性もあり、[ezweb-tensou] の目印付きで @ezweb.ne.jp → @au.com の転送を行うようにしていた。

@ezweb.ne.jp は spam ばっかり

しかし最近は、@ezweb.ne.jp 宛は、spam ばっかり。新しい @au.com には届いていない。

ということで、そろそろ潮時ということで、自動転送を停止し @ezweb.ne.jp とお別れとした。

EdgeRouter-X 1.10.7 への更新とNot enough disk space for root file system

ER-X firmware 1.10.7

EdgeRouter-X のファームウェア1.10.7が10/3に公開されたみたい。
そこで、アップデートをかけたけど、失敗する。しかたがないので、Web で見つけた資料をみて CLI での更新を試すが、

$ scp ER-e50.v1.10.7.5127989.tar ubnt:
Not enough disk space for root file system

のメッセージが出ている。容量不足だな。といっても、データを保存するわけでもないし、何を消せばいいのやら。

delete system image

更に資料を探すと、古い 起動イメージを消す命令があるようだ。CLI でログインして、以下のコマンドを実行。

$ delete system image

Win10 Oct2018 Update でストアアプリネットワーク接続できず

昨日配信が始まった、Windows 10 October 2018 Update を適用してみた。

しかしながら、適用後は普通に使えると思っていたが、ストアアプリと Edge を柄応答するとネットワークに接続できないというメッセージ。原因チェックとかもかけたけどダメ。色々とネットの記事を参考にしてみたが、ダメだった。

状況では、Ethernet の LAN のアダプタなんだけど、なぜか WiFi の SSID が名前になってる。すごく不気味な状態。

調べた中で、デバイスマネージャを起動して、該当ネットワークアダプタを削除するとかいう(再起動かけてもデバイス削除のままでネットワークデバイスを認識しなかったら、デバイスドライバインストールもできないかも…)怖い記事をみつけ、その記事にすがって、アダプタ削除&OS再起動をかけたら、改めてネットワークデバイスを認識してくれたのか、ようやく復旧した。

添付ファイル付きメールの送信

WatchOS5 を使うと、メール添付画像を見ることができるので、監視システムなどから画像付きでメールを送りたくなった。HTML形式で画像へのリンクを送っても画像はみえない。

#!/usr/bin/perl

=head1 使用方法

mail-mixed.jp [options] 宛先... 標準入力をメール本文として送る
        -t --to 宛先
        -c --cc CC宛先
        -b --bcc BCC宛先
        -f --from 差し出し人
        -s --subject タイトル
        -a --attach 添付
        -h --html HTML形式かどうか

=cut

use warnings ;
use Getopt::Long ;
use Jcode ;
use Encode ;
use utf8 ;
use MIME::Lite ;
use File::MimeInfo::Magic ;

my $m_from = "" ;
my $m_html = 0 ;
my @m_attach = () ;
my @m_to = () ;
my @m_cc = () ;
my @m_bcc = () ;
my $m_body = "" ;

# オプションの読み込み
GetOptions( 'to=s' => \@m_to , 'cc=s' => \@m_cc , 'bcc=s' => \@m_bcc ,
            'from=s' => \$m_from ,
            'subject=s' => \$m_subject ,
            'attach=s' => \@m_attach ,
            'html' => \$m_html ,
    ) ;

# 残りのオプション To として扱う
@m_to = ( @m_to , @ARGV ) ;

# 標準入力はメール本文
while(  ) {
    $m_body .= $_ ;
}

# メール MIME::Lite用引数
my %arg = () ;

$arg{From} = $m_from ;
if ( $m_html ) {
    # $arg{Subject} = encode( 'MIME-Header' , $m_subject ) ;
    # UTF-8だと文字化けするぞ
    # $arg{Subject} = encode( 'MIME-Header-UTF_8' ,     Jcode->new( $m_subject )->utf8 ) ;
    $arg{Subject} = encode( 'MIME-Header-ISO_2022_JP' , Jcode->new( $m_subject )->jis ) ;
} else {
    $arg{Subject} = encode( 'MIME-Header-ISO_2022_JP' , Jcode->new( $m_subject )->jis ) ;
}
$arg{To}  = join( ", " , @m_to  ) if ( @m_to  > 0 ) ;
$arg{Cc}  = join( ", " , @m_cc  ) if ( @m_cc  > 0 ) ;
$arg{Bcc} = join( ", " , @m_bcc ) if ( @m_bcc > 0 ) ;
$arg{Type} = 'multipart/mixed' ;

# メール全体の作成
my $msg = MIME::Lite->new( %arg ) ;

# メール本文の作成
if ( $m_html ) {
    # HTML形式ではUTF-8を使う
    $msg->attach(
        Type => 'text/html; charset="utf-8"' ,
        Data => Jcode->new( $m_body )->utf8 ) ;
} else {
    # それ以外は日本語ISO-2022-JP
    $msg->attach(
        Type => 'text/plain; charset="iso-2022-jp"' ,
        Encoding => '7bit' ,
        Data => Jcode->new( $m_body )->jis ) ;
}

# 添付ファイルを付ける
foreach my $file ( @m_attach ) {
    if ( -r $file ) {
        my $r_file = $file ;
        # ファイル名のディレクトリ部を削除
        $r_file =~ s/^.*\/// ;
        # 添付
        $msg->attach(
            Type => mimetype( $file ) ,
            Path => $file ,
            Filename => $r_file ,
            Disposition => 'attachment' ) ;
    }
}

# メールを送る
$msg->send ;

### Local Variables: ###
### mode: perl ###
### End: ###

dhcp-evalの使い方

自宅ネットワークでは、利用する機器の状態を把握するために固定IPアドレスを割り振っているが、DHCP の hardware ethernet で、Mac アドレスをみて配布している。この DHCP のリース時に、状態に合わせた処理を起動するための機能がある。

on commit などで script を実行

on commit , on release , on expiry を設定すると、IPアドレス割り振り時にプログラムを起動できる。

# vi /etc/dhcp/dhcpd.conf
:
# IPアドレス割り振り時に on-commit.sh を起動
on commit {
    set clip = binary-to-ascii(10, 8, ".",
                 leased-address);
    set clhw = binary-to-ascii(16, 8, ":",
                 substring(hardware, 1, 6));
    execute("/etc/dhcp/on-commit.sh", clip, clhw);
}

# vi /etc/dhcp/on-commit.sh
#!/bin/bash
#   IPアドレスを割り振り時にメールを送る
IP=$1
MAC=$2
if [ -n "$IP" -a -n "$MAC" ]; then
    echo "$IP $MAC" \
    | /usr/bin/mail -s "dhcp on commit" foo@example.com
fi

on commit の例で示した方法は、DHCPがアドレスをリースする度に呼び出される。スクリプトは同期して行われるため、遅い処理の場合には アドレス割り振りに支障がでるかもしれない。よって、スクリプトはシンプルなものを使う必要がある。

自宅では、host { fixed-address … } で、固定しているとはいえ WiFi なスマホだと、電波強度不足で再接続が発生する時だと、頻繁にメールが届くことになる。接続情報を保存するなどの Script を書かないとウザぃ。

host 毎に script を実行

こういうことができると、状況に合わせてリースを制御したくなる。自宅で使う場合だと、子供が長い時間使っている場合には、IPアドレスのリースを失敗させて、ネットワーク接続を切りたいかもしれない。

こういう場合には、host … { } の中に、execute を埋め込むことができる。しかも、execute で実行される script の返り値で、lease を失敗させることもできる。

# /etc/dhcp/dhcpd.conf
:
host game-machine {
    hardware ethernet 00:11:22:33:44:55 ;
    fixed-address      192.168.11.222 ;
    execute( "/etc/dhcp/lease-check.sh ,
             "192.168.11.222" ,
             "00:11:22:33:44:55" ) ;
}

# vi /etc/dhcp/lease-check.sh

#!/bin/bash
#  DHCP接続を判定する script
IP=$1
MAC=$2
if [ -n "$IP" -a -n "$MAC" ]; then
    if [ アドレスを許可する条件 ]; then
        # 接続許可
        exit 1
    else
        # 接続禁止
        exit 0
    fi
fi

注意: 最初 lease-check.sh は許可するときに shell-script 成功時を表す exit 0 を返せばいいとおもったけど、逆だったな。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト