min117の日記

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

RaspberryPi ZERO 元旦にイギリスから到着 → 開封 → OSMCインストール → 日本語化 → MPEGキーをインストール(動画再生ヌルヌル)

前記事で注文していたRaspberryPi ZERO が元旦に届いた。縁起が良い。さっそく開封。

f:id:min117:20170102000504p:plain

インターフェース等の詳細はこのへん。

5ドルのラズパイ!Raspberry Pi Zero | Device Plus - デバプラ

マイクロHDMIとSDカード(16GBでいいや)をAmazonで購入。

f:id:min117:20170103170601p:plain

ーーー

届いた。ケースも着いたので装着してみる。

f:id:min117:20170121111327p:plain

f:id:min117:20170121111344p:plain

f:id:min117:20170121111409p:plain

OSMCをインストールして日本語化。このへん参照。

arms22.blog91.fc2.com

日本語化は、テレビのリモコンだけでできる。わざわざsshで入る必要なし。

f:id:min117:20170121111127p:plain

OSMCの場合も動画をスムーズに再生するには、MPEGキーを買わないといけない。買い方は別記事参照。

min117.hatenablog.com

購入したキーをOSMCに設定する。ここはsshが必要。

$ ssh osmc@ラズベリーパイZEROのIPアドレス

初期のパスワードは「osmc」。

f:id:min117:20170121112647p:plain

$ cd /boot/

$ vi config.txt

(OSMCには vim は入っていないようだ)

f:id:min117:20170121112948p:plain

購入したキーを追記する。

f:id:min117:20170121113207p:plain

動画再生してみる。

f:id:min117:20170121112227p:plain

最高。テレビのリモコンからNASの動画がサクサク再生できる。このサイズでこのスペック。RaspberryPi最高だ。

RaspberryPi 3 に Metasplolit Framework をインストールする

 

f:id:min117:20161230074853p:plain

apt-get -y install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev locate libreadline6-dev libcurl4-openssl-dev git-core libssl-dev libyaml-dev openssl autoconf libtool ncurses-dev bison curl wget postgresql postgresql-contrib libpq-dev libapr1 libaprutil1 libsvn1 libpcap-dev

f:id:min117:20161230074958p:plain

f:id:min117:20161230075027p:plain

# apt-get -y update

f:id:min117:20161230075322p:plain

apt-get -y install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev locate libreadline6-dev libcurl4-openssl-dev git-core libssl-dev libyaml-dev openssl autoconf libtool ncurses-dev bison curl wget postgresql postgresql-contrib libpq-dev libapr1 libaprutil1 libsvn1 libpcap-dev

f:id:min117:20170105064154p:plain

f:id:min117:20170105064315p:plain

f:id:min117:20170105064329p:plain

f:id:min117:20170105064349p:plain

f:id:min117:20170105064412p:plain

f:id:min117:20170105064435p:plain

f:id:min117:20170105064509p:plain

f:id:min117:20170105064524p:plain

また Rubyjson のとこでエラーだ。ラズパイの初代に入れた時と同じ。

f:id:min117:20170105064614p:plain

git cloneで入れた Ruby版は実行あきらめよう。

ーーー

metasploitのサイトから落としたインストーラバイナリ(.run)を直接叩くとどうなるんだ?

f:id:min117:20170105064628p:plain

RaspberryPi3 は32bit版のはず。sudo で実行してみる。

# ./metasploit-latest-linux-installer.run

f:id:min117:20170105064637p:plain

別のサイトの内容でテスト。

f:id:min117:20170105064945p:plain

どうも情報が少ない。metasploit を RaspberryPiでやるって方向性に無理があるのか?armアーキテクチャではうまくないのかもしれない。

ーーー

Dockerでやってみる。別記事にする。

min117.hatenablog.com

 

 

 

RaspberryPi(初代)に Metasplolit Framework をインストールする

 最高の書籍買った。「実践 Metasploit」(オライリージャパン)。手に取って、中を見た瞬間に買うの決めた。知りたかった情報が盛りだくさん。

さっそく、RaspberryPiに Metasploit Framework をインストールして実践していく。手順はこのサイトにあった。 

null-byte.wonderhowto.com

ーーー

先に結論を書く

・RaspberryPi(初代)でインストール(この記事)→ うまくいかず

・RaspberryPi 3 でインストール(この記事末尾)→ うまくいかず

・Docker上のCentOSでインストール → 成功

min117.hatenablog.com

ーーー

RaspberryPi(初代)へのインストール。sudo -s して作業する。

f:id:min117:20161229202601p:plain

apt-get -y install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev locate libreadline6-dev libcurl4-openssl-dev git-core libssl-dev libyaml-dev openssl autoconf libtool ncurses-dev bison curl wget postgresql postgresql-contrib libpq-dev libapr1 libaprutil1 libsvn1 libpcap-dev

f:id:min117:20161229202604p:plain

インストールされた。いくつか取得できないとあるが、まずは無視する。

f:id:min117:20161229202618p:plain

# apt-get install git-core postgresql curl ruby1.9.3 nmap gem

# gem install wirble sqlite3 bundler

f:id:min117:20161229202625p:plain

f:id:min117:20161229202640p:plain

インストールされた。

f:id:min117:20161229204140p:plain

なぜか /opt での作業が必須らしい。

# cd /opt

f:id:min117:20161229205902p:plain

# git clone https://github.com/rapid7/metasploit-framework.git

f:id:min117:20161229205752p:plain

f:id:min117:20161229211111p:plain

冒頭書籍では cd /opt/framework/msf3/ したあとに msfconsole し、それから cowsay++ コマンドを打てとあるが、フォルダ構成はすこし違うみたい。f:id:min117:20161229211049p:plain

gem で bundler を入れろときた。

gem install bundler

f:id:min117:20161229211709p:plain

インストール完了。再度metasploitを実行。

# ./msfconsole

f:id:min117:20161229211927p:plain

またエラーか。gemって何rubyか? Run bundle install しろ とあるからやる。

# bundle install

root 権限で実行するな、と出た。やむないから Ctrl+c でいったん止めて、rootからpiに戻してbundle install する。

f:id:min117:20161229212245p:plain

なんか赤文字でエラーになる。

f:id:min117:20161229212321p:plain

 途中で Ctrl+c したのがまずかったか?再度bundlerをインストールする。

f:id:min117:20161229212606p:plain

f:id:min117:20161229212613p:plain

f:id:min117:20161229215719p:plain

# gem listf:id:min117:20161229215710p:plain

could not be found in any of the sources listed in your Gemfile」でググる

stackoverflow.com

これやって動いたよ!という記述発見。

f:id:min117:20161229215847p:plain

やってみる

# bundle install --binstubs

f:id:min117:20161229215642p:plain

rubyzip でコンソールが固まって(?)返ってこないから ctrl+c していったんキャンセル。再度 # bundle install --binstubs したら、jsonがおかしいとのエラーが出た。指示に従って再インストールする。

f:id:min117:20161230070300p:plain

f:id:min117:20161230073310p:plain

f:id:min117:20161230073319p:plain

f:id:min117:20161230070115p:plain

f:id:min117:20161230070101p:plain

f:id:min117:20161230070047p:plain

f:id:min117:20161230070034p:plain

f:id:min117:20161230072212p:plain

f:id:min117:20161230072309p:plain

"mkmf.rb can't find header files for ruby"の対応 - Qiita

f:id:min117:20161230074018p:plain

f:id:min117:20161230074131p:plain

ダメだな。ruby大っ嫌い。RaspberryPi3で試すか。

min117.hatenablog.com

 

 

bash awk ファイル一覧(ls)の毎行ごとに容量の合計を表示する

 

大量の動画ファイルをブルーレイ(片面25GB)に焼いていくけど、どれとどれを焼けば合計で25GBか?を考えるのが面倒。こういうのこそコンピュータにやらせる。

ーーー

毎行ごとにファイル容量の合計を出す

$ { for i in *{ts,mp4}; do ls -shal "$i" | awk '{a+=$1; print $1,$10}'; done;} | awk '{a+=$1;print $1,a,$2} END{print "----\n" a}'

f:id:min117:20161225095337p:plain

拡張子がtsまたはmp4のファイルの一覧で、毎行ごとの合計を出してくれる。この例だと、最終行で合計が26.3GBになるからブルーレイをオーバーしちゃうのがわかる。最終行では合計も出る。

f:id:min117:20161225100459p:plain

1列目には「G」が付いているのに、無視して合計してくれるawkすごい。

ーーー

for文を無くしてシンプルにする改良。

$ ls -shal *{ts,mp4} | awk '{a+=$1;print $1,a,$10} END{print "----\n" a}'

f:id:min117:20161225100340p:plain

Linux コンソール上でGoogle カレンダー(gcalcli)を使ってみる(python3)

 

このサイトにあるのを RaspberryPi(初代)で使ってみる。python製らしいので、python2か3かを明示して進める。今回は python3 環境。

orebibou.com

pipなので sudoはしない で進めてみる。

$ pip install gcalcli

gcalcliはGoogleCalenderCLIの略か。

f:id:min117:20161225071147p:plain

使ってみる。

f:id:min117:20161225071450p:plain

だめやね。エラーになった。

bash awk テレビ録画した動画ファイルの容量がGB超のものだけを一覧化してサイズ合計を表示する

 

録画した地デジ動画ファイルが溜まっているので、容量の大きい(GB超のもの)を取り出してブルーレイに焼きたい。動画はこんな感じ。

$ ls -shal | grep NHK.*ts.*mp4

f:id:min117:20161224232459p:plain

サイズ(第1列)がギガバイト(G)のものだけにする。

$ ls -shal | grep NHK.*ts.*mp4 | awk '{ if ($1 ~ /G/) print $1,$10}'

f:id:min117:20161224232846p:plain

awk は形で覚える。

ls -shal | grep NHK.*ts.*mp4 | awk '{ if ($1 ~ /G/) print $1,$10}'

このへん参照した。

The GNU Awk User's Guide - 正規表現

ーーー

1列目だけを合計したい。「1.4G」だとGの字が邪魔で合計できない。数値(1.4)にしたいawk区切り文字をGにしちゃえばいい。

ls -shal | grep NHK.*ts.*mp4 | awk '{ if ($1 ~ /G/) print $1,$10}' | awk -FG '{print $1}'

f:id:min117:20161224235511p:plain

よし。これで数値になった。あとはこれを合計する。awkは少数でも合計できるようだ。

$ ls -shal | grep NHK.*ts.*mp4 | awk '{ if($1 ~ /G/) print $1,$10}' |  awk -FG '{print $1}' | awk '{a+=$1} END{print a}'

f:id:min117:20161224235708p:plain

合計56.2GBと出た。念のため検算してみる。pythonで地道に手で叩くか。

f:id:min117:20161224235755p:plain

確かに 56.2GB のようだ。これは便利。

ーーー

各行と合計行をわかりやすく表示するようにした。

$ ls -shal | grep NHK.*ts.*mp4 | awk '{ if($1 ~ /G/) print $1,$10}' |  awk -FG '{print $1}' | awk '{a+=$1; print $1} END{print "------\n" a}'

f:id:min117:20161225003124p:plain

このへん参照。

d.hatena.ne.jp

共通テーマ: 実例でわかる awk: 第 1 回

ーーー

容量がGB超のファイルについて、サイズとファイル名を出力する。

 ls -shal  | grep NHK_ | awk '{print $1,$10}' | awk '{if($1 ~ /G/) print $1,$2}'

f:id:min117:20161225004451p:plain

バッククオートに食わせて、for文に流し込んでみる。

$ for i in `ls -shal  | grep NHK_ | awk '{print $1,$10}' | awk '{if($1 ~ /G/) print $1,$2}'`; do echo "$i"; done

f:id:min117:20161225004646p:plain

ファイル名だけあればいい。

for i in `ls -shal  | grep NHK_ | awk '{print $1,$10}' | awk '{if($1 ~ /G/) print $1,$2}'`; do echo "$i" | grep mp4; done

f:id:min117:20161225004847p:plain

あ。for文に食わせる必要ないや。awk のときに ファイル名だけ出せばいいのか。

ls -shal  | grep NHK_ | awk '{print $1,$10}' | awk '{if($1 ~ /G/) print $2}'

f:id:min117:20161225005105p:plain

これをファイルにいったん落とす。確認の意味も含めて。

f:id:min117:20161225005226p:plain

専用のフォルダを作る。

$ mkdir OVER_GB/

f:id:min117:20161225005319p:plain

for文で移動する。

$ for i in `cat over_GB_files.txt`; do echo "$i"; mv "$i" OVER_GB/; done

f:id:min117:20161225005433p:plain

iMac上からも確認。あとはこれをブルーレイに焼くだけ。

f:id:min117:20161225005612p:plain