ラジコの録音、東京の放送を取得する一案(8 録音スクリプト

サーバー接続してトークンを取得して録音するスクリプトを作ります。

大部分はネットから拾ってきたコードです。色々手を入れています。
とくに「get torken from server」の部分です。
ここで、クライアントを使って、サーバーにトークンを取りに行っています。

クライアントはこちら↓
サーバークライアントを試す

あと一部「mp3」と書いてありますが、aacのママとしています。
この方が音質もよくファイルサイズも小さいからです。これは知った時驚きました。
ファイルサイズは約3分の1で、しかもエンコードする時間も不要です。

また出力先を別で指定しているのは、
webアプリで簡単に視聴できるようにするためです。

#!/bin/sh

# TBS:TBSラジオ
# QRR:文化放送
# LFR:ニッポン放送
# NSB:ラジオNIKKEI
# INT:INTER FM
# FMT:TOKYO FM
# FMJ:J-WAVE
# JORF:ラジオ日本
# BAYFM78:bayfm78
# NACK5:NACK5
# YFM:FMヨコハマ

if [ $# -eq 3 ]; then
  OUTFILEPREFIX=$1
  RECTIMEMIN=$2
  CHANNEL=$3
else
  echo "usage : $0 OUTFILEPREFIX RECTIMEMIN CHANNEL"
  exit 1
fi

OUTFILEPREFIX=$1
RECTIMEMIN=$2
CHANNEL=$3

RTMPDUMP=/usr/local/bin/rtmpdump
FFMPEG=/usr/bin/ffmpeg
MP3PATH=[mp3を吐き出したいディレクトリ]

OUTFILEBASEPATH=[処理を実行するディレクトリ]
OUTFILENAME=${OUTFILEBASEPATH}/${OUTFILEPREFIX}_`date +%Y-%m-%d`
FLVFILEEXT=".flv"
AACFILEEXT=".aac"
MP3FILEEXT=".mp3"

MARGINTIMEMIN=1
RECTIME=`expr ${RECTIMEMIN} \* 60 + ${MARGINTIMEMIN} \* 2 \* 30`

# 30sec wait
echo "===== `date` Wait 30sec. ====="
for f1 in 2 1 0
do
  for f2 in 9 8 7 6 5 4 3 2 1 0
  do
    echo -n "$f1$f2\r"
    sleep 1
  done
done
echo `date` Start.

#開始時刻
START=`date +%s` 

cd ${OUTFILEBASEPATH}

playerurl=http://radiko.jp/player/swf/player_3.0.0.01.swf
playerfile=./player.swf
keyfile=./authkey.png

#
# get player
#
if [ ! -f $playerfile ]; then
  wget -q -O $playerfile $playerurl

  if [ $? -ne 0 ]; then
    echo "failed get player"
    exit 1
  fi
fi

#
# get keydata (need swftools)
#
if [ ! -f $keyfile ]; then
  swfextract -b 14 $playerfile -o $keyfile

  if [ ! -f $keyfile ]; then
    echo "failed get keydata"
    exit 1
  fi
fi

#
# get torken from server
#
CRIENT=`./client.pl $CHANNEL`
echo $CRIENT
authtoken=`echo $CRIENT| cut -d ' ' -f2`

#
# rtmpdump
#
RETRYCOUNT=0
while :
do
  ${RTMPDUMP} -v \
              -r "rtmpe://f-radiko.smartstream.ne.jp" \
              --playpath "simul-stream.stream" \
              --app "${CHANNEL}/_definst_" \
              -W $playerurl \
              -C S:"" -C S:"" -C S:"" -C S:$authtoken \
              --live \
              --flv ${OUTFILENAME}${FLVFILEEXT} \
              --stop ${RECTIME}
  RET=$?
  #録音終了
  END=`date +%s`
  SS=`expr ${END} - ${START}`
  if [ $SS -gt `expr $RECTIME - 30` ] ; then
      echo "OK... " $SS " > " $RECTIME "(-30)"
      
  else
      echo "NG... " $SS " <= " $RECTIME "(-30)" NOKORI=`expr $RECTIME - $SS` echo ./simple_rec_radiko.sh $OUTFILEPREFIX $NOKORI $CHANNEL # ------- echo *------------------- RECOVERY START ------------------------* echo *------------------- RECOVERY START -----`date`-------------* >> err.log 2>&1
      ./mail_err.sh
      ./simple_rec_radiko.sh $OUTFILEPREFIX $NOKORI $CHANNEL >> err.log 2>&1 &
      echo *------------------- RECOVERY E N D -----`date`-------------*
  fi

  if [ $RET -ne 1 -o `wc -c ${OUTFILENAME}${FLVFILEEXT} | awk '{print $1}'` -ge 10240 ]; then
    echo RETURN ... $RET 
    echo `wc -c ${OUTFILENAME}${FLVFILEEXT} | awk '{print $1}'`
    break
  elif [ ${RETRYCOUNT} -ge 5 ]; then
    echo "failed rtmpdump"
    exit 1
  else
    RETRYCOUNT=`expr ${RETRYCOUNT} + 1`
  fi
done

echo `date` MP3 Encode Start.

${FFMPEG} -y -i "${OUTFILENAME}${FLVFILEEXT}" -vn -acodec copy "${OUTFILENAME}${AACFILEEXT}"
# ${FFMPEG} -y -i "${OUTFILENAME}${FLVFILEEXT}" -acodec libmp3lame -ab 128k "${OUTFILENAME}${MP3FILEEXT}"

echo `date` MP3 Encode E n d.

# mv ${OUTFILENAME}${MP3FILEEXT}   ${MP3PATH}
mv ${OUTFILENAME}${AACFILEEXT}   ${MP3PATH}

rm -f ${OUTFILENAME}${FLVFILEEXT}

echo "===== `date` E n d. ====="

ラジコの録音、東京の放送を取得する一案(7 サーバーを常時起動させるには

これで万事解決と思いたいですが、
サーバーが起動していないと、このスクリプトは動作しないです。
通常はバックグラウンドで起動させればずっと動いているはずです。
が、さくらインターネットのベーシックプランでは、あまり長い間プロセスが動いているとkillされてしまいます。
?一度暴走させて、「すべてのスクリプトを止めた」というメールが来てひやりとしました^^;?

また、長時間起動しっぱなしの時、プロセスは残っているのに返答がない、という状況が起きました。
それほどのリソースを食うスクリプトではないですが、何か対策は必要です。

起動スクリプト

こんな感じで作ってみました。

#!/bin/sh
export PATH=/home/xxxx/perl5/bin:/home/xxxx/local/bin:$PATH

# server running check.
ST=`ps ax|grep server|grep -v grep`
# running...0 stop...1
RUN=$?

#PID
PID=`echo $ST| cut -d ' ' -f1`

Msg(){
    echo `date '+%Y/%m/%d %H:%M:%S'`	$1
}

if [ $# -eq 0 ];then
    # Status
    if [ $RUN -eq 0 ] ;then
        Msg "running.($PID)"
    else
        Msg "stop." 
    fi
    #
else
    if [ $1 = "start" ] ;then
        Msg "to start." 
        if [ $RUN -eq 0 ] ;then
            Msg "already running.($PID)"
        else
            ./server_token.pl &
        fi
        
    elif [ $1 = "stop" ] ;then
        Msg "to stop." 
        if [ $RUN -eq 0 ] ;then
            kill $PID
        else
            Msg "already stop.($PID)"
        fi
    elif [ $1 = "restart" ] ;then
        Msg "restart." 
        if [ $RUN -eq 0 ] ;then
            kill $PID
            Msg "stop."
            sleep 1
            ./server_token.pl &
        else
            Msg "already stop.($PID)"
            ./server_token.pl &
        fi
    else
        echo "usage : $0 [start|stop|restart]"
    fi
fi

まずexportコマンドでユーザーディレクトリにモジュールをインストールしてあるパスを設定します。

サーバーが起動しているかどうかは、psコマンドでserverという文字列があるかどうかで確認しています。
もちろんserverという名前を含む別プロセスがあると誤作動します。ここは注意が必要です。

引数が0の場合にはstatusとなります。PIDか停止しているかを表示して終わります。

あとはstart、stop、resutartに応じて動作します。
起動するときには
./server_token.pl &
のようにしてバックグラウンド起動しています。

restartは録音を失敗したくない番組の5分前に実行しています。

startは落ちている場合に起動する、という動作になっているので、5分おきに起動しています。

どちらもcrontabにて設定をしてあります。

 

ラジコの録音、東京の放送を取得する一案(6 サーバークライアントを試す

感覚的にはWEBサーバーを介したほうが簡単そうです。
けど、今回はソケットを使います。勉強のためです。

とはいえ、あまり時間を書けて1からやっても仕方ないので、
文明の利器、検索を使います 笑

ものすごく有用なページがヒット。

ソケットによる通信を行う

このサンプルをつかわせてもらいましょ。

動作検証

こういうときは、とりあえず、コードを借りてきて自分の環境で動作させてみます。

サーバー起動

クライアント起動

”Hello”とサーバーに送信

”Hello”をサーバーで受取、”echo:Hello”と返す

サーバーからの応答”echo:Hello”を表示

という流れです。
クライアントから何か文字列を送り、サーバーはそれに対して加工してクライアントに返しています。
これを改造すれば、

クライアントから「局ID」を送信し、トークンをサーバーから受信する

ということが簡単にできそうですね。

サーバーはこのようにしました。

#!/usr/bin/perl

use strict;
use warnings;
use Socket;
use Fcntl qw(:flock);

# 2. 受付用ソケット情報の作成
my $local_port = 9000;

#ロック
open  LOCK , "+>" , "./serverlock.${local_port}";
if ( flock LOCK ,LOCK_EX|LOCK_NB ){
    print "OK LOCK!\n";
}else{
    print "NG LOCK!$!\n";
    exit ;
}

# サーバ
# 1. 受付用ソケットの作成
my $sock_receive;
socket($sock_receive, PF_INET, SOCK_STREAM, getprotobyname( 'tcp' ))
  or die "Cannot create socket: $!";

my $pack_addr = sockaddr_in($local_port, INADDR_ANY);

# 3. 受付用ソケットと受付用ソケット情報を結びつける
bind($sock_receive, $pack_addr)
  or die "Cannot bind: $!";

# 4. 接続を受け付ける準備をする。
listen($sock_receive, SOMAXCONN)
  or die "Cannot listen: $!";

# 5. 接続を受け付けて応答する。
my $sock_client; # クライアントとの通信用のソケット

while (accept( $sock_client, $sock_receive )) {
  my $content;
  
  # クライアントからのデータの読み込み
  while (my $line = <$sock_client>) {
    $content .= $line;
  }

  my $ret=`./token_radiko.sh $content`;
  
  # クライアントへのデータの書き込み
  print $sock_client "$ret";
  close $sock_client;
}

一応ロック機構を付けました。なくても良いかもしれません。
そして、返却文字列を前述したトークン取得のシェルスクリプトにしました。

トークンだけ取得

 

クライアントはこんな感じ

#!/usr/bin/perl

use strict;
use Socket;

my $CH="";
if (@ARGV == 1){
    $CH=$ARGV[0];
    }else{
        print "usage : ./$0 [CHANNEL]\n";
        exit 1;
}

# クライアント
# 1. ソケットの作成
my $sock;
socket($sock, PF_INET, SOCK_STREAM, getprotobyname('tcp' ))
or die "Cannot create socket: $!";

# 2. ソケット情報の作成
# 接続先のホスト名
my $remote_host = 'domein.com';
my $packed_remote_host = inet_aton($remote_host)
or die "Cannot pack $remote_host: $!";

# 接続先のポート番号
my $remote_port = 9000;

# ホスト名とポート番号をパック
my $sock_addr = sockaddr_in($remote_port, $packed_remote_host)
or die "Cannot pack $remote_host:$remote_port: $!";

# 3. ソケットを使って接続
connect($sock, $sock_addr)
or die "Cannot connect $remote_host:$remote_port: $!";

# 4. データの書き込み
# 書き込みバッファリングをしない。
my $old_handle = select $sock;
$| = 1;
select $old_handle;

print $sock $CH;

# 書き込みを終了する
shutdown $sock, 1;

# 5. データの読み込み
my $cnt=0;
while (my $line = <$sock>) {
    print "$cnt $line";
    $cnt++;
}

# 6. ソケットを閉じる
close $sock;

チャンネルIDを引数にして実行するだけです。
これでクライアントにいながら、さくらインターネットで取得したトークンだけを得られます。

ラジコの録音、東京の放送を取得する一案(5 さくらインターネットでトークンを得る

トークンをさくらインターネットで取得すれば東京の放送を録音できそうです。
しかしいくつかモジュールが足りません。
ですが、ホームディレクトリにインストールすることで解決できます。

swftoolsのインストール

http://www.swftools.org/download.htmlから最新版をダウンロードします。

最新版は 2013-04-09の swftools-2013-04-09-1007.tar.gzのようでしたが、
私は一つ前のにしました。
最新版も結構前ですから、2013年版でも問題ないと思います。

$ wget http://www.swftools.org/swftools-0.9.2.tar.gz

コンパイルします。

$ ./configure --prefix=$home/local
$ gmake
$ gmake install

 

makeだと通らなかったので、gmakeを使いました。

base64のインストール

最新版はエラーに成ってしまいました。
よって古いバージョンにしました。
最新版でも成功するなら良いと思います。

ダウンロードします。

$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.10.tar.gz

解凍してコンパイル。

$ tar zxfv ~/download/coreutils-8.10.tar.gz
$ cd coreutils-8.10/
$ ./configure --prefix=$home/local
$ make
$ make install

 

これでOKです。

多分設定してあると思いますが$homeを確認してから実行するようにしてください。

echo $home

 

ワードプレスのリストア後のドメイン変更

mysqlのデータベース上のドメインを移行先のドメインに変更しないと正常に動作しません。
予め設定でドメインを変更すればいいのかもしれませんが、
突然ドメインが使えなくなったり、既に変更が可能ではない状態では困ってしまいます。

データベース上のデータをいじってドメインを変更する

CGIをダウンロードします。

こちら
Database Search and Replace Script in PHP

私がダウンロードしたのは
Search-Replace-DB-3-1-0-emaildownloads.zip
でした。
ダウンロードのリンクはサイトにはなくって、メールを登録すると
後からメールにダウンロードリンクが送られてくる形式です。
ちょっとスパムが心配ではありますが、私はメインのアドレスを書いちゃいました。もうめんどくさくて・・・。

これを解凍して、当該ワードプレスのフォルダの中に入れます。
それでWEBからアクセスするとこんな画面が出ます。

どういう仕組なのか、databaseの欄ははじめから入っていました。直下のフォルダだと設定を読み込むのかな??

  • name・・・データベース名
  • user・・・データベースのユーザー名
  • pass・・・データベースのパスワード
  • host・・・データベースのホスト名

ポート番号はデフォルトです。

重要なのは一番上のreplaceの部分です。
左側に元のドメイン、右側に新しいドメインを書きます。

私の場合は「m-ynko.azi2.com」「res.azi2.com」と書きました。
regexは正規表現のオプションですが、とくに必要ないと思います。

actionの「update detail」を押してみます。何も変化がないように思います・・・

次に「dry run」を押します。

こんな風に対象が出てきます。
さらに「live run」をおします。

これで、うまく成功していれば、データベースの書き換えが完了します。

多分、新しいドメインでアクセスすればワードプレスのWEBページが表示されるはずです。

写真やプラグインやテーマ

データベースだけを復旧しても写真もプラグインもテーマも復活しません。
ファイルがない!、というエラーがたくさん出ます。
これを移行するには単にファイルを移せばいいだけです。

wp-contentのなかの

  • themes
  • plugins
  • uploads

をコピーするだけ。
はじめはコピーだけで認識されるのか不安でしたが、
管理はデータベースの中でやっているようなので、単にファイルを戻しただけで復活しました。
ちょっと自由度の低さを感じましたが、移行という意味ではやりやすいかもしれませんね。

 

WordPressワードプレスのリストア

バックアップファイルからリストアしてみます。

まずは、新規にインストール

おさらいも兼ねて、まずは新規にインストールを行います。

まずはドメインの設定ですが、今回は実験ですのでサブドメインにしました。

res.azi2.com というドメインを www/restore というパスに設定しました。

次に新規でデータベースを作ります。***_restore としました。

www/restore というフォルダを作ってWordPressをインストールします。

$ mkdir restore
$ cd restore/

ワードプレス本体をダウンロードします。

$ wget?https://ja.wordpress.org/wordpress-4.8.1-ja.tar.gz

解凍します。

$ tar -zxvf wordpress-4.8.1-ja.tar.gz

restoreの直下に中身を移動させます。

$ mv -i wordpress/* .

webからアクセスします。

http://restore.azi2.com

あとは指示に従えばインストールは完了します。

DBのリストア

バックアップしたsqlファイルからリストアします。

mysql -h mysql***.db.sakura.ne.jp -uアカウント -pパスワード データベース名 < dump.sql

800文字程度の記事が100以上ありますが、一瞬で終了します。
この時、他のデータベースの上書きは絶対にしてはいけません!上書きするので消えますよ。
コマンドを実行するときは一度エディタに書き出してよく確認してから実行すること。
また、他のデータベースもすべてバックアップを行ってから実行するのが万全です。

さて、これで、リストアできた・・・はずなのですが、そうは行きませんでした。
先程のres.azi2.comに接続しても真っ白い画面になってしまいつながりません。
仕方ないので、http://res.azi2.com/wp-login.php に直接アクセスすると・・・
なんと、もとのhttp://m-ynko.azi2.comに飛ばされてしまいます。
設定そのものがデータベースに書かれてしまっているため、移行前にドメイン設定を変えるか、移行先に同じドメインで移行するなら、これでOKです。

しかし今回の場合は別ドメインへのリストアなので、もうひと工夫必要となります。

WordPressワードプレスのバックアップ

一応ブログを始めるときにmysqlのバックアップははじめているのですが、
バックアップしているだけで、リストアできるのか全く謎です 笑
一応試しに軽くリストアしたことはありましたが、
ちゃんとまとめてなかったので、おさらいとして試しながらメモしたいと思います。

mysqlのバックアップ

バックアップはそんなに難しくありません。
mysqldumpというコマンドを使うとテキストファイルにダンプしてくれます。

/usr/local/bin/mysqldump -Q -h mysq****.db.sakura.ne.jp -uアカウント -pパスワード データベース名 > dump.sql

↓これはさくらインターネットのデータベース一覧画面です。

これを見ながら適宜書き換えて実行します。
アカウントとパスワードはさくらインターネットのログイン時に使うやつじゃなくて
データベースを作るときに作ったやつなので、注意です。
データベース自体は別のサーバーのようですので、アドレスが書かれています。
ラズパイ(でラズパイにDBを作っている場合)の場合にはlocalhostとなります。
さくらインターネットの場合にはデータベース名が「ユーザー名_****」のような形になるようです。自由に、という訳にはいきません。
あと、-uとか-pのあとに空白を入れないのがミソです。
入れるとうまくログインできませんよ。

-Qは何かと思いましたが、

-Q
–quote-names
DB名、テーブル名、カラム名などの識別子をバックティック文字で囲む。これらの識別子にMySQLの予約後が含まれていても問題なく動作するようになる

ということなので、つけておいたほうが無難です。

 

raspberrypi php7+NGinxでワードプレスを運用していたけどアップデートしたら動かなくなった

しばらく実行していなかったので、
raspbianのアップデートアップグレードを実行しました。

sudo apt update
sudo apt upgrade -y

すると、、、やってしまいました。WordPressが開けなくなりました。

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
あなたのPHPのインストールには、ワードプレスによって要求されたMySQLの拡張を利用できないようです。

MySQLの拡張?

php-mysqlというのが入っていないのでしょうか
今まで動いていたのに、おかしいですね・・・。

$ sudo apt-get install php-mysql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
php-mysql はすでに最新版です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。

インストール済み・・・がっかり。

phpになんのモジュールが入っているかは-mでわかるそうです。

php -m|grep mysql

無い・・・mysqlのモジュールが入ってい無いと・・・?
php-mysqlはインストールされているのに、phpに入ってないということは、バージョン違い??

試しにさくらインターネット(ベーシック)にて試してみると・・・

$ php -m|grep mysql
mysqli
mysqlnd
pdo_mysql

ちゃんと入っていますね。

試しにphp関連のパッケージを確認してみます。

$ dpkg -l|grep php
ii dh-php 0.21~bpo8+1 all debhelper add-on to handle PHP PECL extensions
ii php-common 1:53+0~20170804100549.2+jessie~1.gbpa3f349 all Common files for PHP packages
ii php-mysql 1:7.1+53+0~20170804100549.2+jessie~1.gbpa3f349 all MySQL module for PHP [default]
ii php-pear 5.6.30+dfsg-0+deb8u1 all PEAR - PHP Extension and Application Repository
ii php5 5.6.30+dfsg-0+deb8u1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.6.30+dfsg-0+deb8u1 armhf command-line interpreter for the php5 scripting language
ii php5-common 5.6.30+dfsg-0+deb8u1 armhf Common files for packages built from the php5 source
ii php5-fpm 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-json 1.3.6-1 armhf JSON module for php5
ii php5-mysql 5.6.30+dfsg-0+deb8u1 armhf MySQL module for php5
ii php5-readline 5.6.30+dfsg-0+deb8u1 armhf Readline module for php5
ii php7.0 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-cli 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf documentation, examples and common module for PHP
ii php7.0-dev 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Files for PHP7.0 module development
ii php7.0-fpm 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php7.0-json 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf JSON module for PHP
rc php7.0-mysql 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf MySQL module for PHP
ii php7.0-opcache 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Zend OpCache module for PHP
ii php7.0-readline 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf readline module for PHP
ii php7.1-common 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf documentation, examples and common module for PHP
ii php7.1-mysql 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf MySQL module for PHP
ii pkg-php-tools 1.28 all various packaging tools and scripts for PHP packages

あれれ?なにかおかしいです。
まずphpのバージョンが7.0です。

$ php -v
PHP 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 (cli) (built: Aug 10 2017 14:34:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206, Copyright (c) 1999-2017, by Zend Technologies

それなのにいくつか7.1用のモジュールが入っていますね。
しかも、当該の「php7.0-mysql」は削除(rc)されてしまっています。
php7.1-mysqlがインストールされていますが、おそらくこれだとバージョン違いになってしまうのでしょう。

古いバージョンが入るかどうか不安ですがインストールしてみます。

$ sudo apt-get install php7.0-mysql
[sudo] password for mlin:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php7.0-mysql
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
105 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 432 kB のディスク容量が消費されます。
以前に未選択のパッケージ php7.0-mysql を選択しています。
(データベースを読み込んでいます ... 現在 118917 個のファイルとディレクトリがインストールされています。)
.../php7.0-mysql_7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206_armhf.deb を展開する準備をしています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を展開しています...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を設定しています ...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...

入った!

そして、無事起動!!Wordpressが開きました!

モジュールさえ入ってしまえば再起動は不要なようでした。

あー、よかった 汗

Solarisの社員がクビ?!

ちょっと驚きのニュースがはいってきました。

米オラクルがSolaris関連の従業員をほぼ全員レイオフしたのではないかと海外で報道されています。

レイオフって何じゃ?ってことですけど、「一時解雇」ということで、業績が好転するまで休んでね、ってことらしいです。再雇用が前提である部分がリストラとの違いです。業績が悪くなったからと言って解雇していたら技術が保てないので、アメリカではレイオフが一般的だそうです。その間の給料は少しは保証されるのかな?

かなり景気が悪いってことですね。好転することなどあるのか・・・?
Solarisといえば、サーバーOSとしてデフォルトでした。
UNIXといえばSolarisを指すぐらい・・・。

無料になったSolaris

たしかSolarisは7から無料でダウンロードできるようになったと思いました。
ちょうど勤め先でもSolarisを使い始めた頃で、SPARC版とX86版で違いはありましたが、
中古のPCをにインストールして操作方法を勉強したりしました。
結構硬派なOSでデスクトップが表示されたときは感動しました。
自宅でネットワーク接続まで成功し、それだけでかなり興奮していた覚えがあります 汗
今ではLinuxのドライバがWindows以上に強くなっているので、
デバイスが認識しないということはほとんどありません。そういう苦労はなくなってしまいました。
でも、この頃のSolarisって、ネットを繋げる、っていうところにすでに壁がありまして、
でもそれを何とかするのが面白かった。。。
それにしても、WindowsもMacも有料が当たり前でしたから、Solarisのような高価なOSが無料っていうのは衝撃的でしたね。

まだ無料!Solaris!!

さよなら・・・と思ったけど、ちょっと調べてみました。
いまのバージョンは11でした。ダウンロードできる!

Oracle Solarisダウンロード

記念にインストールしてみましょうかね。今時はVMですけど。
あまり使いみちが思いつかないですけど・・・。

ラジコの録音、東京の放送を取得する一案(4 ラジコのチャンネルIDの調べ方

そもそも自分のネットワークがラジコ的にどこの地域だと認識されているのかを知る方法はあるのでしょうか。
一番簡単なのはラジコに接続して見るのが手っ取り早いです。
ところが、はっきりと「○○県」と出るわけではないので、人によっては???となりそうです。
というわけでその辺りの基本的(だけどあまりオープンじゃない)情報の知り方をレビューします。

自分のネットワークがどこになっているか

地域判定について

ここにアクセスします。
現在の地域判定結果、となっているのがラジコで認識している地域です。
ちゃんと自分の地域になっているでしょうか?

スマホやタブレットであれば正常に認識されている可能性は高いのですが、
PCだとおかしい場合が多いです。
現に私は愛知県になっています。
この下の修正後の地域判定結果に正しい地域を選んで送信すると
2?3日で修正してくれます。ところが、、、しばらくするとまた戻ってしまうのでいたちごっこです。

ま、とりあえず、どこと認識されているかはこれでわかるのです。

チャンネルIDはどうやって調べるのか?

エリアIDから調べます。
エリアIDは先程の地域判定のページのソースからわかります。

このエリアIDを使って以下のURLにアクセスします。
東京の場合です。
http://radiko.jp/v2/station/list/JP13.xml
このJP13の部分を適宜変更します。
そうすると、XMLが表示されます。<ID>の部分がチャンネルIDとなり、録音に使用します。

JP1  北海道
JP2  青森県
JP3  岩手県
JP4  宮城県
JP5  秋田県
JP6  山形県
JP7  福島県
JP8  茨城県
JP9  栃木県
JP10 群馬県
JP11 埼玉県
JP12 千葉県
JP13 東京都
JP14 神奈川県
JP15 新潟県
JP16 富山県
JP17 石川県
JP18 福井県
JP19 山梨県
JP20 長野県
JP21 岐阜県
JP22 静岡県
JP23 愛知県
JP24 三重県
JP25 滋賀県
JP26 京都府
JP27 大阪府
JP28 兵庫県
JP29 奈良県
JP30 和歌山県
JP31 鳥取県
JP32 島根県
JP33 岡山県
JP34 広島県
JP35 山口県
JP36 徳島県
JP37 香川県
JP38 愛媛県
JP39 高知県
JP40 福岡県
JP41 佐賀県
JP42 長崎県
JP43 熊本県
JP44 大分県
JP45 宮崎県
JP46 鹿児島県
JP47 沖縄県