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

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

システム

最近の投稿

アーカイブ

カテゴリー

夜中にapacheが落ちる

昨日、今日と、夜中に apache が落ちている現象が発生。以前にも同じようなトラブルが起こったよなぁ…と blog に書いた覚えがあって、検索をかけようとしたら、WordPressの検索機能が動かない。phpのmbstringが無いのが原因だった。php のバージョンを php7.0 → php7.2 に変更した際に、php7.2-mbstringが入っていなかったのが原因。”aptitude install php7.2-mbstring”を実行。

php7.2→php7.0に戻す

色々と試すと、apache2 の reload 時に、”apache2ctl graceful” を実行すると、以下のようなエラーが出ている。
Aug  9 18:48:39 perrine kernel: [xxx] apache2[xxx]: segfault at ...
   error 15 in mbstring.so[xxx]
php7.x-mbstring が原因かと思い、消したりしたけど、別のエラーが出る。色々試しても改善せず、ひとまず、php7.2→php7.0 を行う。 そのくせ、php7.0 で動かなかった wordpress の 画像回転とかの php-gd 使ったのが動くようになってるし。

php7.0→php7.2

phpを、php5→php7.0 に更新してから、WordPress の画像回転編集ができなくなっていたが、php7.2 では、使っていた wordpress のプラグインで警告が表示されるのでやめていたけど、php7.2 に更新作業を行った。

警告がでるのが、php のコードを記述できる phpcode widget だった。この機能を使っていたのは、include( “…html” ) を使いたかったため。今回、include ではなく、iframe を使うようにすることで、phpcode を使わないようにした。

ただ、このphpcode のプラグインをアンインストールしようとすると、エラーがでてアンインストールが失敗する。しかたがないので、一時的に php7.2 → php7.0 に切り替えて、phpcode をアンインストールして、再び php7.0 → php7.2 に戻す必要があった。

朝の自動めざましじゃんけんを停止

朝の「めざましじゃんけん」でサーバから赤外線リモコン信号を送ることで、自動で青・赤・緑・黄のボタンを押すプログラムを動かしていた。でも、最近は朝起きた子供が、見たくないニュースやってるとチャンネルを替えるので、機能していないし、週末の応募操作を面倒で忘れるので、自動「めざましじゃんけん」機能を止めた。

一時期は、毎週応募していたけど、最終的に1度もあたらんかったなぁ….

www.googleapis.comの名前引き

自宅では、予定を google-home で自動で喋らせたりするために、gcalcli などのコマンドを使っている。しかし、最近エラーで予定取得に失敗することが増えた。python 関係のライブラリの更新の不整合かと思っていたが、どうも www.googleapis.com の問題のよう。

gcalcli がエラーになったり、成功したりと再現性がないので、エラーメッセージで www.googleapis.com に接続できないっていうし、”nslookup www.googleapis.com” を実行すると、名前引きに失敗する。しかしながら、”nslookup www.googleapis.com 8.8.8.8″ なら成功する。何度か調べていると、通常の nslookup でも名前がひけたりする。意味不明。

bind の設定は….以前、セキュリティ対策で導入した、”OpenDNS (Cisco Umbrella)”を使うようになっている。これが原因か…。bindの設定を修正して、安定して gcalcli が動くようになったかな。
# Cisco Umbrella は、怪しいサイトの可能性の場合、名前引きを失敗させる Open な DNS

Google API を使った攻撃があるのか? OpenDNS にグレー判定されてんの?

暑さの測定

以前購入した、Raspberry-Pi 内蔵の MZ-80C のミニチュアは、温度・湿度・気圧のセンサーを付けて、2Fのトイレに設置していたけど、WiFiが若干不安定だったので、常時サーバで記録はしていなかった。しかし、この暑さなので、エアコンの無い部屋の温度を測定したかったので、改めて設定してみた。

Raspberry-Pi の inetd の echo サーバの所に温度測定スクリプトを記載して、”/usr/bin/nc raspberry-pi 7″ で測定できるように設定し、munin 用のデータ取得スクリプトを書いて設定。このクソ暑い温度を測ってみた。

家の西側の2会のトイレに設置しているので、夕方が最高温度で、家の中でも34℃越え。湿度は、トイレのドアを開放すると、大きく変化するようだ。

icingaからgoogle-home-notifierで警告

あまりにも暑い日が続くなか、夜は涼しくなるかとエアコンを控えめにすると、暑さで目が覚めることもある。部屋の温度は、温度・湿度センサーで測っているし、google-home-notifier を使って暑さの警告をしゃべらせてみる。単純に温度が設定温度を越えたら…なんてプログラムだと、頻繁に喋られてもうるさいし、icinga から呼び出させてみた。

警告時にプログラムを起動

## /etc/icinga/commands.cfg 追記 ##
# 'notify-host-by-program' command definition
define command{
   command_name  notify-host-by-program
   command_line  /etc/icinga/commands-host.sh \
      "$HOSTNAME$" "$NOTIFICATIONTYPE$" \
      "$HOSTSTATE$" "$HOSTOUTPUT$"
   }

# 'notify-service-by-program' command definition
define command{
   command_name  notify-service-by-program
   command_line  /etc/icinga/commands-service.sh \
      "$HOSTNAME$" "$SERVICESESC$" "$NOTIFICATIONTYPE$" \
      "$SERVICESTATE$" "$SERVICEOUTPUT$"
   }
## /etc/icinga/objects/contacts_icinga.cfg 追記 ##
define contact{
   contact_name                    notifyProgram
   alias                           NotifyProgram
   service_notification_period     24x7
   host_notification_period        24x7
   service_notification_options    w,u,c,r
   host_notification_options       d,r
   service_notification_commands   notify-service-by-program
   host_notification_commands      notify-host-by-program
   email                           foobar@example.com
   }
define contactgroup{
   contactgroup_name       adminsProgram
   alias                   Administrators and Notify Program
   members                 root,notifyProgram
   }

温度センサーの設定

## /etc/icinga/objects/localhost_icinga.cfg ##
# USBRH
define service{
   use                    generic-service
   host_name              localhost
   service_description    USBRH
      check_command       check_usbrh2!32!35!81!85
      contact_groups      adminsProgram
   }
## /etc/icinga/commands-service.sh ##
#!/bin/bash
# icinga からプログラムにより警告
#    ((commands.cfg を参照))
#    /etc/icinga/commands-service.sh
#       "$HOSTNAME$" "$SERVICESESC$" "$NOTIFICATIONTYPE$"
#       "$SERVICESTATE$" "$SERVICEOUTPUT$"
case "$2-$3" in
  USBRH-PROBLEM )
    case "$4" in
      WARNING | CRITICAL )
        if [ "$4" == "CRITICAL" ]; then
          MESS="部屋の温度が危険です。"
        else
          MESS="部屋の温度に注意してください。"
        fi
        /usr/bin/printf "%s %.1f 度 %.1f %%" "$MESS" \
           `温度と湿度を取得するスクリプト` \
           | 標準入力をgoogle-home-notifierに送るスクリプト
        ;;
    esac
    ;;
esac

au iPhone X SIMロック解除

子供の mineo の A/D プラン変更の見直しを考えつつ、自分の iPhone X も購入から 180日を経過し、SIMロック解除ができる時期。特に、契約を変更するつもりはないけど、必要に応じて別 SIM も使えるようにロック解除しておくか。

と思って、解除手続きをやろうとしたら、21:30 までなので、出直し。

mineo契約をDプランに変更する?

大学に進んだお兄ちゃんがそろそろ夏休みだし、帰省の準備。

大学VPNに接続できない

お兄ちゃんの大学では、学生向けシステムを学内・契約アパート・VPN接続に制限している。帰省している時にレポート提出などのために、VPN 経由で使おうとしたけど、自宅ネットワークで 192.168.1.x を使っているため、大学側VPNルータとアドレスが重複して接続できなかった。

ポケットWiFiルータを使えば接続できるけど、その度に貸し出すのもなんだし、スマホのテザリングでつなぐのが普通だろう。

mineo Aプランではテザリングできない

ただ、お兄ちゃんのスマホは、最初がパパおさがりのiPhone5(SIMロックあり)だったので、mineo の Aプラン(au回線による接続)になっている。んで、mineo の Aプランは、サービスの制限からテザリングができない。一方、mineo の Dプラン(docomo回線による接続)では、テザリングが使える。

SIMフリーだし、mineo Dプランに変更でいい

お兄ちゃんのスマホは、お下がりiPhone5が故障で、Apple Store から購入した SIM フリーな iPhone SE に切り替えているから、au 回線に縛られる必要はなくなっている。mineo の Aプラン⇔Dプラン 変更は、2000円ほどでできるから、この夏休みを前に、プラン切り替えしたほうがいいだろうな…

テザリングができれば、帰省時以外でも、出先でパソコンをネットに繋げられるし、便利なはず。

dovecot 2.3 更新

dovecot を更新したら、2.2 → 2.3 で SSL 関連の設定が変更になったみたい。

以下の設定を追記

(( /etc/dovecot/conf.d/10-ssl.conf ))
ssl_dh = </usr/share/dovecot/dh.pem
ssl_min_protocol = TLSv1.2

XcXsrv の最新版を入れる

Bash on Windows やら、Linux 環境を Windows と絡めて使っていると、Windows 環境用の X Server が使いたくなる。以前は、Xming とか cygwin などを使っていたけど、設定などが大変なので、XcXsrv を使っていた。しかし、アプリによってはうまく動かず、tgif などはフォントが見つからないというエラーが出る。

調べると、gsfonts-x11 を入れるとか出てくるけど、ローカルサーバのお話。XcXsrv に gsfonts-x11 を入れるといいのだろうけど、これまた設定がややこしそう。

しかし、最新の XcXsrv-1.20 を入れたら、特にフォント入れなくても、問題なく動くじゃん。

DISPLAY環境変数の設定

そんなに X Server を使うわけじゃないけど、WSL環境と、Linuxサーバで DISPLAY 環境変数を設定する処理を .profile に書いとくか。

(( WSL環境の $HOME/.profile に追加 ))
if [ -z "$DISPLAY" -a -n "$HOSTNAME" ]; then
    export DISPLAY=$HOSTNAME:0.0
fi

(( Linuxの $HOME/.profile に追加 ))
if [ -z "$DISPLAY" -a -n "$SSH_CLIENT" ]; then
    case $SSH_CLIENT in
        192.168.*)
            export DISPLAY=`echo $SSH_CLIENT | cut -d' ' -f 1 `:0.0
            ;; 
        *)  ;;
    esac
fi

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報