min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

fedora30 keepalived で2台のWebサーバ(Apacheとnginx)へ負荷分散する準備

インフラ系の本も読んでみたい。安く手に入った。

f:id:min117:20200301210033j:plain f:id:min117:20200301210248j:plain

ほとんど日常の仕事そのままなんだけど、改めて基礎から見直す。抜け落ちの知識の穴埋めになる。

 

スケジューリングアルゴリズムの正式名称ってこんなだったのか。

f:id:min117:20200301212115j:plain

勉強になる。

f:id:min117:20200301212128j:plain

 

keepalived 立ててみたい。

f:id:min117:20200301212142j:plain

 

自宅のサーバは fedora30 の Apacheだけど

$ apachectl -V

f:id:min117:20200301212510p:plain

 

nginxでもう一本たてkeepalivedで負荷分散してみたいなぁ。冗長化スクリプトも面白そうだし。

 

眠っているサーバもあったりする。名機 HP Proliant N54L。久々に電源ON。

f:id:min117:20200301212926j:plain

min117.hatenablog.com

cloud.watch.impress.co.jp



Windows2012R2 もインストールしてあったっけか。たしか Citrixのテストに使ったんだっけ。

f:id:min117:20200301212745p:plain

時計も合ってるね。

 

ゲストOS → キーの送信 → Ctrl + Alt + Del

f:id:min117:20200301213745p:plain

f:id:min117:20200301220116p:plain

 

バッチリ使えそうだなぁ。

f:id:min117:20200301214214p:plain

これにもう1台仮想サーバCentOS立てて、nginxを突っ込むことにしよう。

 

PHPサーバも建てるかな。Windowsでやってみたかったし。次回いろいろやる。

 

 

 

 

 

 

fedora 30 pdftotextコマンドでPDFファイルからテキストを取り出す(HTML→PDF→txt)

PDFファイルからテキストを取り出せるらしい。

www.hiihah.info

やってみる。

 

使う記事はこれ。

f:id:min117:20200301192526p:plain 

クルーズ船「ダイヤモンド・プリンセス」の扱いを誤った政府の無策により、全国にコロナウイルスが蔓延してしまった2020/2/27(木)、ときの首相が突然「来週から全国の学校を休校にします」などと決めてしまったものだから全国が大混乱。同年2/29(日)、安倍晋三首相は慌てて「国民に向けた記者会見」を行うも、突然の休校について全く説明がなかった。

 

これについて、政府に説明責任を果たすよう追及する記事。

news.yahoo.co.jp

 

HTMLをPDFにする機能は実装済み。

f:id:min117:20200301190857p:plain

min117.hatenablog.com

 

この機能でPDFにしたのがこれ。

20200301_183115_新型コロナ対策・首相記者会見で私が聞きたかったこと~政 府は国民への説明責任を果たせ.pdf

f:id:min117:20200301192526p:plain
ここからテキストを取り出す

 

pdftotext 20200301_183115_新型コロナ対策・首相記者会見で私が聞きたかったこ と~政府は国民への説明責任を果たせ.pdf  

f:id:min117:20200301192353p:plain

一瞬で終わった。本当に取り出せているのか?

 

$ cat 20200301_183115_新型コロナ対策・首相記者会見で私が聞きたかったこ と~政府は国民への説明責任を果たせ.pdf  

f:id:min117:20200301192839p:plain

すごい。バッチリ取り出せてる。

 

ということは

$ for i in *pdf; do echo "$i"; pdftotext "$i"; done

f:id:min117:20200301193103p:plain

とかやれば、たくさんのPDFファイルを一括でテキストファイルに落とせるわけだ。素晴らしい。

 

既に気になった記事のURLを貼り付けるとPDFを作る機能までは実装済みだから

f:id:min117:20200301193457p:plain

ここで「PDF作成」を押したタイミングで記事のテキストファイルも保存する仕様に変更する。次回やってみる。



なお、今回とは逆にテキストファイルからPDFを作ることもできる。

min117.hatenablog.com

Linuxほんと最高。

 

 

 

memo

f:id:min117:20200301190742p:plain

 

 

 

新しい Kyash Card の申込案内が来たので発行してみる

f:id:min117:20200226232713p:plain

 

定期的に飛行機で飛ぶ用事がある。言った先ではKyashを使うことしばしば。

min117.hatenablog.com

 

そのKyashが新しくなるらしい。新カードの申込案内通知を申し込んでおいたら昨日(2020/02/25)連絡メールが届いた

f:id:min117:20200226231022p:plain f:id:min117:20200226231027p:plain

900円かかるらしいが、カード柄がシンプルで気に入ったので発行してみる。

f:id:min117:20200226231031p:plain

 

Kyash アプリ右上のフォルダアイコンをクリックすると発行画面に飛ぶ。

f:id:min117:20200226230827p:plain f:id:min117:20200226230834p:plain

発行手数料に900円かかる。ポイント還元は1%。dカードGOLDより低いがSuicaにチャージできるか試したい

min117.hatenablog.com

min117.hatenablog.com

 

色。どうするか迷う。

f:id:min117:20200226230842p:plain f:id:min117:20200226230846p:plain

 

まあ、無難に Navy にした

f:id:min117:20200226230851p:plain f:id:min117:20200226230854p:plain

認証は運転免許証で行う。

 

写真のアップロードはやりたくないが仕方ない。

f:id:min117:20200226230901p:plain f:id:min117:20200226230907p:plain

iPhone縦に撮って写真面積を少なくしてアップしてやった。

 

本人確認情報を登録。クレカなのでここはダミーなくホントを書く。

f:id:min117:20200226230911p:plain f:id:min117:20200226230915p:plain

 

注意事項を読んでおく。

f:id:min117:20200226230919p:plain f:id:min117:20200226230923p:plain

 

発送まで1ヶ月かかる場合もあるらしい。問題なし。

f:id:min117:20200226230928p:plain f:id:min117:20200226230933p:plain

 

普通郵便でくるのか。まあ、全く構わないが。

f:id:min117:20200226230937p:plain f:id:min117:20200226230941p:plain

 

名前を登録。名→姓の順。

f:id:min117:20200226230945p:plain f:id:min117:20200226230948p:plain

 

発行完了。900円はKyash残高から落ちる。

f:id:min117:20200226230953p:plain

あとは到着までしばらく待ってみる。

 

 

 

 

 

ジョルダン乗換案内 オープンAPIについて調べる

乗換案内の検索結果を使いたい。

f:id:min117:20200224084231p:plain

 

ジョルダンが無償提供してるらしいので使い方を調べる。

f:id:min117:20200224084109p:plain

norikae.jorudan.co.jp

 

かなり良さそう。

f:id:min117:20200224084211p:plain

https://biz.jorudan.co.jp/file/norikae_openAPI.pdf

しかし…

利用には接続元アドレスの登録が必要みたい。

f:id:min117:20200224084525p:plain

これだと気軽に試せない。DDNSだけどIPv6だから固定だし。ちょっと試してみたかっただけなんだけど。

 

sakuraかどっか、サーバ借りてお試しwordpressでも作ってから再度試してみるか。

 

 

 

 

 

 

bash radikoの番組表の改行を sed -z で削除する cat myradikolistSPITZ.txt | grep -B 1 prog | sed -z s/'@\n'/''/g

前回と同じ手順で SPITZのラジオの番組表を作りたい。

f:id:min117:20200223223456p:plain

 

スピッツ最高。いつ聴いても最高。

www.tfm.co.jp

min117.hatenablog.com

 

myradikosearchChannel 全国の局の一覧を返す 例:FMFUKUI 福井

./myradikoBANGUMI.sh 引数に取った局の番組表を返す(xmlで)


こんなんしまして

$ L=myradikolistSPITZ.txt; for i in $(myradikosearchChannel | awk '{print $1}' ); do echo "$i"_@ | tee -a "$L";./myradikoBANGUMI.sh "$i" | grep -B 1 SPITZ | grep -B 3 title | tee -a "$L";done

 

$ cat myradikolistSPITZ.txt

f:id:min117:20200223223841p:plain

progの行で 開始時刻(ft)終了時刻(to)が読み取れる。

 

で、progの直前の行ラジオ局名なわけだ。

f:id:min117:20200223224156p:plain

てことはprogとその直前の行だけを取り出しせねばならない。catとgrepやる。

 

grep -B(efore) 1 prog とやれば、progの前(Before)の1行が取れる。

$ cat myradikolistSPITZ.txt | grep -B 1 prog

f:id:min117:20200223224702p:plain

さて、あとは

FMMIE_@の行progの行を 繋げれば

局名(FM三重開始終了時刻 が1行に入る

 

改行の取り去りが難しい。cat と sedやる。

$ cat myradikolistSPITZ.txt | grep -B 1 prog | sed -z s/'_@\n'/''/g

f:id:min117:20200223225225p:plain

すげ。GNU sed では sed -z で改行を取り去れるらしい。

 

このサイト天才。いつも勉強になる。

orebibou.com

 

ここまでくれば、あとはちょっと加工してCSVにする。

$ cat myradikolistSPITZ.txt | grep -B 1 prog | sed -z s/'_@\n'/''/g | awk -F= '{print $1,$2,$3}' | sed -e s/'<prog ft '/''/g | sed -e s/'to'/''/g | sed -e s/'ftl'/''/g |sed -e s/'"'/''/g | sed -e s/'--'/''/g | sed -z s/'  \n'/''/g | sed -e s/' '/','/g | sed -e s/',,,,,,,,,,'/','/g | sed -e s/',,'/','/g

 

f:id:min117:20200223231440p:plain

うむ。

 

もう少し加工する。

cat myradikolistSPITZ.txt | grep -B 1 prog | sed -z s/'_@\n'/''/g | awk -F= '{print $1,$2,$3}' | sed -e s/'<prog ft '/''/g | sed -e s/'to'/''/g | sed -e s/'ftl'/''/g |sed -e s/'"'/''/g | sed -e s/'--'/''/g | sed -z s/'  \n'/''/g | sed -e s/' '/','/g | sed -e s/',,,,,,,,,,'/','/g | sed -e s/',,'/','/g | sed -s s/'00,'/','/g | sed -z s/',\n'/'\n'/g | sort -t, -k 1 | uniq | sort -t, -k 2

 

f:id:min117:20200223232213p:plain

 

末尾に文字列を足す。vimでやる。

'<,'>s/\n/,SPITZ\r/g 

f:id:min117:20200223233839p:plain

あとは前回と同じスクリプトに食わせる。

min117.hatenablog.com

 

 

 

 

bash radikoの番組表を取得してCSVにする(BGM用音楽専用Channel)

f:id:min117:20200223175240p:plain

前回作った番組表取得スクリプトcurlをラップしただけ)かなり便利。

 

$ ./myradikoBANGUMI.sh RN2 | grep -B 2 RaNi 

f:id:min117:20200223172102p:plain

 

開始時刻と終了時刻だけに加工する。

$ ./myradikoBANGUMI.sh RN2 | grep -B 2 RaNi | grep prog | awk -F= '{print $2,$3}' | sed -e s/'"'/''/g | sed -e s/'to '/''/g | sed -e s/"ftl"/""/g | tee -a myradikolistRANIMUSIC.txt

f:id:min117:20200223172701p:plain

YYYYMMDDhhmm00 になっちゃってる。末尾の00がジャマだ。

 

vimsedで加工して

YYYYMMDDhhmm にする。

%s/00 2/ 2/g

%s/30 2/ 2/g

%s/00 \n/\r/g 

 

改行は n が正しいのか rが正しいのか よく分からないが

f:id:min117:20200223173504p:plain

これで行末の00は消える

f:id:min117:20200223173727p:plain

開始時刻、終了時刻 だけを取り出しできた。

 

スペースをカンマにしてCSVぽくする。

%s/ /,/g

ファイル名 myradikolistRANIMUSIC.txt にして保存。

 

この形式にしたいので

f:id:min117:20200222130512p:plain

 

こうする。

$ for i in $(cat myradikolistRANIMUSIC.txt); do echo "$i"; echo RN2,"$i",RANIMUSIC | tee -a myradikolist.txt; done

f:id:min117:20200223174611p:plain

よし。

 

これを一括スクリプトに食わせる。

min117.hatenablog.com

 

$ ./my_rec_radiko_ts_timefree.sh

f:id:min117:20200223174827p:plain

カンペキ。

 

 

 

 

 

 

bash radikoの番組表を加工する(vimで最短マッチ ¥{-} 利用)stationID=FMFUKUI; curl -s http://radiko.jp/v2/api/program/station/weekly?station_id="$stationID"

f:id:min117:20200223163643p:plain

 

きゃりーぱみゅぱみゅのラジオ面白い。探したい。何時から始まるか全国すべてのラジオ局の番組表から探したい

f:id:min117:20200223164055p:plain

 

まずは指定したラジオ局の番組表を取得するスクリプト作った。

$ vim myradikoBANGUMI.sh

f:id:min117:20200223155043p:plain

curlをラップしてるだけ。

 

こんな感じで使う。

$ ./myradikoBANGUMI.sh FMFUKUI | grep -B 1 きゃりー

f:id:min117:20200223155457p:plain

park.gsj.mobi



全国のラジオ局の一覧はcurl取得。

curl -s http://radiko.jp/index/ | grep href | awk -Findex/ '{print $2}' | awk -F\" '{print $1,$2}' | awk -F\> '{print $1,$2}' | sed -e s/'<\/a'/''/g | sed -e s/'\/'/''/g

f:id:min117:20200223160440p:plain

f:id:min117:20200223164227p:plain

 

コマンド myradikosearchChannel を叩けばイッパツで局一覧を取得できるようにaliasに書く

$ vim ~/.bashrc

alias myradikosearchChannel='curl -s http://radiko.jp/index/ | grep href | awk -Findex/ '\''{print $2}'\'' | awk -F\" '\''{print $1,$2}'\'' | awk -F\> '\''{print $1,$2}'\'' | sed -e s/'\''<\/a'\''/'\'''\''/g |  sed -e s/'\''\/'\''/'\'''\''/g'

 

局一覧すべてに対して番組表を取得にいく。for文で回す。

L=myradikolistKARRY3.txt; for i in $(myradikosearchChannel | awk '{print $1}'); do echo "$i" | tee -a "$L"; ./myradikoBANGUMI.sh "$i" | grep -B 1 きゃりー | tee -a "$L";

 

結果ファイルを編集する。

$ vim myradikolistKARRY3.txt

f:id:min117:20200223154900p:plain

17行目、25行目 ラジオ局名

18行目、26行目 prog行 開始時刻(ft)、終了時刻(to)

 

これを整形してこんな感じのCSVにできれば

ラジオ曲名,開始時刻,終了時刻,ファイル名

f:id:min117:20200222130512p:plain

前回作ったスクリプトで一括録音も可能なわけだ。

min117.hatenablog.com

 

要らない行はvimで消す。

%s/.*desc.*gt; //g

%s/<\/imgs>//g

%s/">\n//g

%s/--//g

 

f:id:min117:20200223162312p:plain

f:id:min117:20200223154833p:plain

 

さらに加工。

f:id:min117:20200223161956p:plain

310行目、317行目

lt から始まって gt までを消したいなぁ。vim正規表現最短マッチできればいいわけだ。

qiita.com

 

すげ。できた。{-} で最短マッチできるみたい。

/lt.\{-}gt;

f:id:min117:20200223162753p:plain

 

置換する。

%s/lt.\{-}gt;//g

f:id:min117:20200223163101p:plain

 

ここまできた。

f:id:min117:20200223163144p:plain

359行目と360行目をつなげたい。

FM_OITA,202002182100,202002182130,叶美香

みたいに取り出せるといい。

 

cat このtxt | grep | -B 1 title

でできそう。次回まで試す。

 

qiita.com