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

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

システム

最近の投稿

アーカイブ

カテゴリー

wsl2 の設定

WSL2 の設定

((( /etc/fstab )))
LABEL=cloudimg-rootfs   /      ext4  defaults   0 0
Z:                      /mnt/z drvfs defaults   0 0

Microsoft Terminal の設定

((( settingsjson )))
{
    :
    "defaultProfile": "デフォルトで起動するコマンドのguid",
    :
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            // ターミナルのフォント
            "fontFace": "Cascadia Code",
            // ターミナルの色構成のデフォルト
            "colorScheme": "Solarized Light",
            // ターミナルのカーソル形状のデフォルト
            "cursorShape": "filledBox"
        },
        "list":
        [
            :
            {
                "guid": "{...}",
                "hidden": false,
                "name": "Ubuntu-20.04",
                "source": "Windows.Terminal.Wsl",
                // ログインした時のホームディレクトリ指定
                "startingDirectory": "//wsl$/Ubuntu-20.04/home/t-saitoh"
            }
        ]
    },
    :
}

wsl2の再インストール

wslの設定ファイルの /etc/fstab を間違った設定をしたようで、wsl(Debian)が起動しなくなった。C:\Users\ユーザ名\AppData…? の中から実体を探せば直せそうだったけど、サクっと直ればいいなと思って Microsoft Store で WSL 環境をアンインストールした。

ただ、このやり方はまずいやり方だったようで、不備のある設定がどこかに生き残ったようで、新たに入れようとした Ubuntu 20LTS のインストールが始まらない。

色々と確認したけど再起動すると、WSL の仮想マシンを立ち上げようとがんばろうとするのか、数分間ブラックアウトするようになるし、最悪。時間がたつとようやくWindows にloginできたので、「設定」-「アプリ」-「Windows のその他の機能」で、WSL 自体を削除&再設定したら、Ubuntu 20 LTS のインストールが始まった。

Windows 10(2004)とwsl2をインストール

wsl2 を使いたくって、windows insider preview を導入して、そろそろ公開されるはずの Windows10 (ver:2004,build:19041)に更新し、Windows Subsystem for Linux 2 をインストールしてみた。

wslの起動は、いままでもっさりしてたけど、今はconsole開いたら、すぐに使えるな。

ただ、Windows の更新で、カナ漢字変換のキーアサインが元に戻ってら。

amavisd-newでDKIMのエラー

数日前から、以下のようなエラーメールが届くようになった。

Argument "1.20200513.1" isn't numeric in numeric ge (>=) at /usr/share/perl5/Mail/SpamAssassin/Plugin/DKIM.pm line 686.
Argument "1.20200513.1" isn't numeric in numeric ge (>=) at /usr/share/perl5/Mail/SpamAssassin/Plugin/DKIM.pm line 809.

どうも、DKIM の Perl スクリプトが amavisd-new のバージョン確認で、実数形式のバージョン番号の比較でエラーになっている様子。ge 使えって書いてあるし、そうしてみた。でも、versionが9.9超えたら、また変になるよな。まあ、両方とも 1.2とか2.1とかだし 9.9 超える頃には、更新かかるだろ。

686: -if ($version >= 0.31) {
     +if ($version ge "0.31") {
809: -if (Mail::DKIM::Verifier->VERSION >= 0.40) {
     +if (Mail::DKIM::Verifier->VERSION ge "0.40") {  

サーバ原因不明のフリーズ

休みののんびりする中、自宅サーバがフリーズ。出先だったのでママが恐る恐るリセット。

普通に起動したけど、icinga, munin を見ても予兆の変な雰囲気は無かった。

自宅に帰って改めてフリーズ時間の履歴を見ると、以下のようなところで syslog が途切れていた。

Apr 29 09:49:53 perrine postfix/smtpd[1325089]: connect from unknown[185.143.xx.xx]
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

この後、このIPアドレスから以下のような接続が続いている。postfix の脆弱性でもあるのかな。侵入には失敗しているようだが、なんか不気味。あまりにも不気味だし、繰り返し login を試しているし、iptables で接続をブロックする。

Apr 29 10:27:08 perrine postfix/smtpd[1943]: connect from unknown[185.143.xx.xx]
Apr 29 10:27:10 perrine postfix/smtpd[1937]: warning: unknown[185.143.xx.xx]: SASL LOGIN authentication failed: authentication failure

bc.googleusercontent.com からの大量アクセス

サーバの負荷が急に上がってきた。

アクセス元を確かめると、35.210.166.102 。調べると 102.166.210.35.bc.googleusercontent.com. からのアクセスで、関連記事を調べるとこういった記事が上がってくる。Google 提供のクラウドみたいで個人からのアクセスらしい。どちらにしろ、10秒程度で次々とページを漁ってる、とてもマナーが悪いクローラー。User-Agent は、以下のようになっている。 https://velen.io をアクセスするけど、つながらない。

"Mozilla/5.0 (compatible; VelenPublicWebCrawler/1.0; +https://velen.io)"

ひとまず、FireWall の IPアドレス指定で接続拒否を行う。

((( /var/www/html/robots.txt )))
User-agent: VelenPublicWebCrawler
Disallow:   /

WP Fastest Cache を試す

PHP の 7.4 への切り替えを行ったけど、インストール済みのパッケージに Cache 関連のモジュールがあって、あらためて WordPress の Cache を調べてみた。

WP Fastest Cache を Install

簡単に導入できそうな、WP Fastest Cache というのがあったので、導入してみた。

WordPressの普通のプラグインの要領でインストール。WordPress の左メニューに WP Fastest Cache が追加されるので選んでから、キャッシュさせたい項目を選んで保存するだけ。

職場の WordPress にも入れてみた。でも、どこまで効果が出ているかは、よくわからない。ある程度運用してから、CPU 負荷を確認するしかないかな。

追加

数日の様子を見たけど、サーバとしては特に負荷が下がったという雰囲気は無いな。

ただ、ページの表示は早くなったような気がする。

homebridge-peopleの設定

homebridgeの記事を探していたら、homebridge-people を見つける。ping の結果を、人感センサーの ON/OFF 情報として扱うことができる。ping のホスト名をスマホのIPアドレスを指定すれば、自宅に居る/居ないとして把握できる。

$ sudo npm install -g homebridge-people
$ emacs .homebridge/config.json
    "platforms": [
        {
            "platform": "People",
            "threshold" : 15,
            "anyoneSensor" : false,
            "nooneSensor" : false,
            "webhookPort": 51828,
            "cacheDirectory": "./.node-persist/storage",
            "pingInterval": 10000,
            "ignoreReEnterExitSeconds": 0,
            "people" : [
                {
                    "name" : "斉藤徹",
                    "target" : "iphonex-tsaitoh",
                    "threshold" : 15,
                    "pingInterval": 10000,
                    "ignoreReEnterExitSeconds": 0
                }
            ]
        }
    ]

本当は、ホームハブを導入することで、Home のオートメーションと連動させて、○○が家に帰ったら、○○するといったことができるんだけど、ホームハブが無いのでできない。そうなってくると、HomePod が欲しくなってくる。

 

EPG番組表とリモコンの連動

ちょいと、お遊び。cablegate の番組表情報から現時点の電子番組表(EPG)を取得し、その番組名をクリックすると、該当するチャンネルに替えるリモコン信号を送るようにプログラムを作ってみた。

本当は、好きな番組を適当に選んで、チャンネル替えたいけど。

画面構成の修正

タップしたチャンネル情報を保存して好きな番組を学習させられないかと、妄想を始めたけど サーバ側は PHP の方が書きやすいので、EPG番組表を PHP でObjectiveに書き直し。でも適当に書いているから、public だらけのクラスが汚いな。

speedtest-cliとrrdtool

インターネットとの通信速度を計測する speedtest-cli で Linux の上で測定できそうなので、毎日測定するようにしてみた。MRTG を単純に使うと5分おきになってしまうので、rrdtool を使って1日1回更新にてデータを生成させる。

#!/usr/bin/perl                                                                                                                             

my $pgname = "speedtest" ;
my $rrdfile = "/var/lib/munin/localdomain/localhost.localdomain-$pgname.rrd" ;
my $graphfile = "/var/cache/munin/www/localdomain/localhost.localdomain/$pgname.png" ;
my $rrdtool = "/usr/bin/rrdtool" ;
my $speedtest = "/usr/local/sbin/speedtest-cli" ;

my $time = time() ;
my $debug = 0 ;

sub fetchvalue {
    my ($upv , $dwv) = @_ ;
    my $upload = 0 , $download = 0 ;
    open( FH , "$speedtest |" ) or die( "Can't open $speedtest." ) ;
    while( my $line =  ) {
        if ( $line =~ /^Upload:\s*([\d\.]+)\s*(M|K|)bit\/s/i ) {
            $upload = $1 ;
            $upload *= 1000000 if ( $2 eq "M" ) ;
            $upload *= 1000 if ( $2 eq "K" || $2 eq "k" ) ;
        }
        if ( $line =~ /^Download:\s*([\d\.]+)\s*(M|K|)bit\/s/i ) {
            $download = $1 ;
            $download *= 1000000 if ( $2 eq "M" ) ;
            $download *= 1000 if ( $2 eq "K" || $2 eq "k" ) ;
        }
    }
    close( FH ) ;
    $$upv = $upload ;
    $$dwv = $download ;
}

sub create {
    my $cmd =
        "$rrdtool create $rrdfile"
        ." --step 86400"
        ." DS:upload:GAUGE:200000:0:U"
        ." DS:download:GAUGE:200000:0:U"
        ." RRA:LAST:0.5:1:7"
        ." RRA:AVERAGE:0.5:3:7"
        ." RRA:MIN:0.5:3:7"
        ." RRA:MAX:0.5:3:7"
        ;
    print $cmd."\n" if ( $debug ) ;
    system( $cmd ) ;
}

sub update {
    # rrdファイルが無ければ作る                                                                                                             
    create()
        unless( -f $rrdfile ) ;
    # 値を取得して更新                                                                                                                      
    my $upv , $dwv ;
    fetchvalue( \$upv , \$dwv ) ;
    my $cmd =
        "$rrdtool update $rrdfile"
        ." N:$upv:$dwv"
        ;
    print $cmd."\n" if ( $debug ) ;
    system( $cmd ) ;
}

sub graph {
    my $start = $time - 3600*24*200 ;
    my $cmd =
        "$rrdtool graph $graphfile"
        ." --imgformat PNG"
        ." --start $start"
        ." --end $time"
        ." --title \"SpeedTest\""
        ." --height 150"
        ." --font DEFAULT:7:Consolas"
        ." --vertical-label \"bit/sec\""
        ." --color FRAME#f3f3f3"
        ." --color AXIS#F3F3F3"
        ." --color SHADEA#f3f3f3"
        ." --color SHADEB#f3f3f3"
        ." --color ARROW#f3f3f3"
        ." COMMENT:\"               cur       avg         min         max\\n\""
        ." DEF:upload=$rrdfile:upload:LAST"
        ." LINE:upload#00FF00:\"Upload  \""
        ." GPRINT:upload:LAST:\"%6.2lf%s /\""
        ." GPRINT:upload:AVERAGE:\"%6.2lf%s /\""
        ." GPRINT:upload:MIN:\"%6.2lf%s /\""
        ." GPRINT:upload:MAX:\"%6.2lf%s \\n\""
        ." DEF:download=$rrdfile:download:LAST"
        ." CDEF:download_minus=download,-1,*"
        ." LINE:download_minus#0000FF:\"Download\""
        ." GPRINT:download:LAST:\"%6.2lf%s /\""
        ." GPRINT:download:AVERAGE:\"%6.2lf%s /\""
        ." GPRINT:download:MIN:\"%6.2lf%s /\""
        ." GPRINT:download:MAX:\"%6.2lf%s \\n\""
        ." > /dev/null"
        ;
    print $cmd."\n" if ( $debug ) ;
    system( $cmd ) ;
}

if ( @ARGV > 0 && $ARGV[0] eq "config" ) {
    create() ;
} elsif ( @ARGV > 0 && $ARGV[0] eq "update" ) {
    update() ;
} elsif ( @ARGV > 0 && $ARGV[0] eq "graph" ) {
    graph() ;
} else {
    update() ;
    graph() ;
}

Google 検索

My Google   Yahoo

Microsoft

ファンサイト