2015/06/03

ランダムなパスワード生成

標準的なコマンドを使用してランダムなパスワードを生成する方法を検討。
自分で考えたのは以下のコマンド

$ cat /dev/random | strings | dd bs=11 count=1 2> /dev/null| tr -d '\n'
    
これでも一応ランダムなパスワード的な文字列が取得できる。

対して 上田会長のアイデアはこちら。

$ cat /dev/urandom | tr -dc 'a-z0-9A-Z' | fold -b10
    
tr (1) コマンドの -c オプションは思い浮かばなかった。 まさに目から鱗な気分です。
さすがシェル芸の家元だけあって目の付け所がシャープ

ちなみに Mac だと tr (1) や fold (1) の挙動が異なるので以下になります。

$ cat /dev/urandom | LC_CTYPE=C tr -dc 'a-z0-9A-Z' | fold -w 10
    

2015/05/28

GW-9400 RANGEMAN ニコイチ

ちょっとした事情で入手した CASIO G-SHOCK GW-9400JK-8JR
MASTER of G シリーズでトリプルセンサーを搭載した RANGEMAN の Love The Sea And The Earth バージョン。
G-SHOCK で初めてのトリプルセンサー搭載モデルなので これからの季節はキャンプなどに最適な時計なのだが、 生息地の減退のためワシントン条約で絶滅危惧種に指定されている、 アジアアロワナをイメージしたというグレーのカラーリングは微妙な色味。

Image: RangemanBefore.jpg

そこでベゼルとバンドを通常モデルの黒と交換する事を思いついたのだが、 ベゼルは日本では既に在庫切れとなっていて入手が困難だった。 色々と探し求めた結果、アメリカの大手オークションサイト eBay で 黒のベゼルをみつけたのではるばるアメリカからベゼルを個人輸入。 国内で入手できたバンドと合わせて交換する事で落ち着いた色合いに。

Image: RangemanAfter.jpg

通常モデルとは異なり盤面にオレンジの差し色が入ってカッコ良くなったと自己満足。

2014/12/19

子供の写真をバックアップ

今回は 「子供」×「ネット」 Advent Calendar 2014 の 19日目の記事として書きました。

難しい話題が続いた様ですので、ここらでちょっと気分転換に軽いお話を…

子供が産まれたら皆さん写真を一杯撮影しますよね?
『え?そうでもない?』…そ、そうですか(笑
私は写真を一杯いっぱい撮影しちゃいました。
我が子のために為にコンパクトデジタルカメラを買い換え、 それでは物足りずにデジタル一眼レフカメラを購入し、 明るいレンズ…望遠レンズ…とすっかり泥沼にはまり込んでいます。 特にお勧めは F値が 1.4 の単焦点レンズで……っと、今回はそういう話ではなくて 撮影したデータを保存するというお話です。

一般的に言ってデジタルカメラで撮影した画像は お手持ちのパソコンのハードディスクに転送して保存していると思います。 その中でお気に入りの何枚かは印刷して保存しているでしょうが、 かつての銀塩カメラと違って全てを印刷する事は少ないのではないでしょうか?
そうなると我が子の写真データはパソコンの中だけに保存されているという事は割とよくある事だと思います。
でも、ちょっと待って下さい。(通販番組風)
そのパソコン本当に大丈夫でしょうか?
ある日パソコンが起動しなくなってしまうのは割と良くある事です。 コンピュータに詳しければパソコンが起動しなくてもお子様の写真を取り出す事はできますが、 普通はそんな事なかなか出来ないと思います。
それに実はパソコンのハードディスクというのは意外と信頼性が低く、 ちょっとした衝撃や場合によっては近所の落雷などでデータが消える危険性があります。
消えてしまって悲しい思いをするまえにちょっとした手間でバックアップを是非!
そんな大切な写真のバックアップにはこちらの商品をぜひ……じゃなくて
今回は我が家でのデータ保全をご紹介致します。

我が家 (というか私) は自宅では MacBook PRO をメインに愛用しています。 写真などのデータも基本はこの中ですのでこのマシンの中身がマスターデータとなります。
ですので全ての基本は MacBook PRO のデータ (画像データの場合は Picture フォルダ) のバックアップになります。

TimeCapsule

OS X と言えば標準で搭載されるバックアップツールの TimeMachine が有名です。
ご多分に漏れず我が家にも TimeCapsule があるので (但し内蔵 HDD は何度か交換済み)、 OS の機能を利用して TimeCapsule にバックアップしています。
MacBook PRO が起動している間は自動でバックアップをしてくれるので便利です。
問題点は若干信頼性が低い所でしょうか。 ですので TimeMachine だけではなく他のバックアップ手段と併用しています。

MacBook Air

普段持ち歩き用に MacBook Air を使っていますので、 重要なデータ (というか殆どの個人データ) はメインの MacBook PRO と同期しています。
同期は OS X に標準のユーティリティ rsync コマンドを利用しています。
rsync は unix で古くから利用されている同期のためのユーティリティで、 ターミナル画面上から利用します。
ターミナルからの利用なので少々ハードルが高く感じますが、 基本は『どこのデータ』を『どこに』同期するか指定して実行するだけです。 例えば以下の様に実行すると Picture フォルダをホスト macbookairPicture フォルダに同期します。 通信は ssh を利用していますが ssh-keygen で生成した鍵認証を利用していますので、 接続時にパスフレーズを聞かれる事なく接続できるので便利ですし自動処理に向いています。

$ for i in Documents Pictures Movies Musics
> do
>  rsync -avz -e ssh ${i} macbookair.example.com:.
> done
                
自宅の LAN 内で MacBook PRO と MacBook Air が同時に起動されている状態では、 上記の処理を自動で定期的に実行する事で MacBook Air のデータを最新の状態に更新し 同時にデータのバックアップ (単なる二重化) としても役立てています。

NAS

正確には NAS ではなくサーバのストレージです。
自宅には FreeBSD で構築したサーバが設置してあるのですが、 そのサーバに大容量の HDD を増設してバックアップ用の NAS としています。 前述した rsync を利用してこちらも自動で定期的にストレージにデータを転送しています。

$ for i in Documents Pictures Movies Musics
> do
>  rsync -avz -e ssh ${i} storage.example.com:/var/backup/
> done
                

VPS

他の用途で利用している VPS (さくらの一番安いタイプですが十分です)のストレージに、 前述した自宅サーバに増設した HDD のデータを定期的に同期しています。
自宅サーバは FreeBSD ですので unix の強力なツールが利用できるので、 この同期処理も勿論 rsync を利用しています。

$ rsync -avz -e ssh /var/backup vps.example.com:/var/backup
                
このさくらの VPS は親戚向けに娘の写真を公開する Web サーバとしても利用しています。 公開には WS-Slideshow という flash のアルバムを利用していますが、 自作のシェルスクリプト を利用して WS-Slideshow の設定ファイル (xml) やサムネイルファイルを作成しています (宣伝乙)。
バックアップしたデータはスクリプトで html などを自動生成して公開しています。
余談ですが、この VPS は 娘の名前の漢字ドメインで運用しています。
娘には unix によるサーバ管理の基礎知識をしっかりと教えて、 娘が成人する時にドメインの権限を委譲するのが今から楽しみです。 (「そんなの要らないよ」と言われるのが今から怖い…)

DVD

年に1回娘の誕生日の翌日に前年の1年分の写真や動画データを DVD に保存しています。
正と副の2枚を焼いて保存していますが、 実は光媒体はデータの保存期間が割と短いので気休め程度です。

Amazon S3

データ保存の本命 Amazon S3 です。
ご存じの方も多いと思いますが、通信販売で有名な Amazon は Amazon Web Service (通称 AWS) という いわゆるクラウドコンピューティングのサービスも提供しています。 この AWS の中で S3 というクラウトストレージ (インターネット上のハードディスクの様なモノです)は お手軽、安心、そこそこ安価なのでこれをバックアップに利用しない手はありません。

AWS の画面は日本語化を進めているそうなのですが、一部(殆ど)英語ですので 若干ハードルが高いのですが、実は簡単な英語ですし機能も単純ですのでそれほど難しくないと思います。
AWS S3 ではデータを「バケット」と呼ばれるコンテナに格納します。
バケットはパソコンのフォルダーの様なものと考えて下さい。 ですので写真を入れるためのバケットを好きな名前で作成します。
ちなみにこのバケットの名前は全世界でユニークにする必要がある様なので、 「pictures」など単純な名前は多分利用できないと思います。

バケットが出来たら早速写真を転送してみます。
ブラウザを経由した Amazon S3 の管理画面からでもアップロードは可能ですが、 Amazon S3 用に色々なツールが公開されているのでそれらを利用するのが良いでしょう。 私はサーバに s3cmd というツールを導入して定期的に同期処理を実行しています。

$ s3cmd sync -rr /var/backup s3://my-picture-backet/Picture
                
ちなみに我が家では娘が産まれてから 8 年分の写真データを全てバックアップしていますが、 容量は 100GB (枚数で言うと 200,000枚) 程度で費用は大体毎月 $ 4.00 (500円) 程度です。

AWS の他の機能 (Cloud Front) を利用すればアップロードした写真を公開したり、 色々とできる事は沢山あるのですが長くなってしまうので今回は残念ながら割愛します。

こうやって列挙すると私は 6重でデータをバックアップしています。 若干やり過ぎ?という気がしなくもありませんが、 お子供の写真は 2 度と撮影できないとても貴重なデータです。 消えてしまったデータを復活するのは非常に困難で不可能な場合も多いですので、 日頃のバックアップで大切なデータが消えてしまうといった事故をお防ぎ下さい。

追記

rsync は OS X 標準ではありませんでした。
Mac Ports を利用して後から導入したコマンドです。

2014/10/30

Happy birthday for my dearest.


You are a gracious person, with a good heart. You care, not because you need to, but because you want to. May God bless you. Happy Birthday.

2014/08/31

PCH Coffee

知り合いが鵠沼海岸にパンケーキのお店を開店したとの事で 早速家族で遊びに行って来ました。

Image: img_1906.jpg

素敵な入り口に駐車スペースも

こぢんまりした店内の内装はとってもセンスが良くまとまっていて、 いつまでもゆっくりしていたくなります。
Image: img_1908.jpg

素敵な店内の様子

娘はフルーツが盛りだくさんの「季節のフルーツパンケーキ」、 私はラズベリーとバナナがトッピングされた「チョコチップパンケーキを頂きました」。

Image: img_1904.jpg

季節のフルーツパンケーキ

Image: img_1905.jpg

チョコチップパンケーキ

ちなみに奥さんは「エッグベネディクトパンケーキ」を頂いたのですが、 写真を撮り忘れました(普段食事を撮影する習慣がないので…つい(汗
ちなみに甘くない具のパンケーキは初めてだったのですが とっても美味しかったです♪

とってもフワフワで美味しいパンケーキを堪能しました。

2014/07/29

ANA整備工場見学に行って来たよ!

今年の2月に申し込んだ ANA 整備工場見学。
非常に人気が高く申し込んでから半年も待たされましたが、 何とか無事に整備工場の見学をしてきました。

朝早くから起きて羽田空港まで車で移動、 空港から羽田整備場まではモノレールで移動です。
モノレールの駅から炎天下を 20分程度歩くといよいよ入り口が見えてきて、 否が応でも気持ちが盛り上がります。

Image: img_1726.jpg

整備工場の入り口
受付を済ませるとまずはスライドや動画などを交えた座学。
Image: img_1733.jpg

受付で渡される名札とパンフレット
お話するのはキャビンアテンダントさんか地上スタッフさんですが、 流石に人前でお話するのは慣れていて上手です。 ここでは『Boeing 787 に搭載されている Rolls-Royce製のエンジンは 何と一基35億円もする!』などのトリビアを仕入れます。

座学の後は待ちに待った工場見学の始まりです。
工場の中なのでヘルメットを被る必要がありテンションも高まります。

Image: img_1740.jpg

ヘルメットを被ってすっかり一人前
整備工場入るとまずはその広さに驚かされます。 あの巨大なジェット旅客機が最大で6機も収容できるサイズは圧巻です。
Image: img_2900.jpg

圧巻の広さを誇る整備工場
当日の整備工場では Boeing 777 や 787 などが整備されていました。

Boeing 787 の特長のある翼端や
Image: img_2914.jpg

特長的な翼端
騒音を低減すると言われるシェブロンノズルも目の前で見れました。
Image: img_2916.jpg

シェブロンノズル
こんなに間近で飛行機を見るのは始めての経験ですし、 エンジンが外され整備中の機体を見るのも勿論初めてなので大感激です。
Image: img_2929.jpg

エンジンが外され整備されている 787

整備工場のすぐ外には特別塗装の Boeing 787 二号機が停機し 出発前の点検整備的な事が実施されていました。

Image: img_2936.jpg

特別塗装の 787
わずか1時間半程度の整備工場見学ですが、 とっても貴重で楽しい経験ができました。

娘よりも親の方がテンション上がって楽しんでいたのは内緒です

2014/07/27

キャンプ

軟弱アウトドア派にとって素晴らしい季節が到来したので、 家族でキャンプに行ってきました。
娘にとっては(そして奥さんにとっても)初めてのキャンプ、 意外に臆病な娘は果たしてちゃんとテントで寝る事が出来るのだろうか? などと一抹の不安を残しながらキャンプに出かけてきました。

家族では初めてのキャンプなので、 ある程度は設備が整っているキャンプ場が良いかな?と思い、 選んだのは自宅からも割と近い西丹沢のウェルキャンプ西丹沢。 サイトは川沿いから数メートル高くなった場所にあり、 午後からは木陰で直射日光も防げるという絶好のロケーションでした。

Image: img_1708.jpg

川沿いのサイト

ドームテントやバーベキューグリルなどを設営したら川遊び!
適度に冷たく綺麗な流れの川で目一杯楽しみます。

Image: img_1714.jpg

川遊びは楽しいですね

川遊びを堪能した後はバーベキューで舌鼓!
自然の中で食べる食材の何と美味しい事か。

Image: img_1720.jpg

食べるのに夢中でバーベキューの写真はありません

一通り遊んだらいよいよテント泊。
微妙に霧雨が降る中テントに入って寝る準備をしたら、 川遊びなどで相当疲れていたのか、 恐がりもせずにあっという間に寝入ってしまった娘。 普段怖がりだと思っていたけど意外と図太い一面もあるのか(笑

翌朝は昨夜と打って変わって快晴!(日頃の行いが…)
朝食を食べたらテントを干しながらまたまた水遊び。

Image: img_1724.jpg

木立の中の気持ち良い朝
かくして一泊の家族初キャンプは無事に楽しく終わりました

追記

我々が出かけた丁度一週間後にこちらのキャンプ場にて 痛ましい事故が起きてしまいました。
亡くなられた母子のご冥福をお祈りします。

2014/07/16

迷惑メイル送信ドメイン

昨日くらいから携帯のメイルアドレスにやたら届く様になった 迷惑メイルの差し出しドメイン一覧。

  • anon-elec.com
  • man-infe.com
  • oasi-powe.net
  • nati-poss.com
  • comp-reme.net
  • chri-disi.com
  • abil-desi.net
  • c-comf.net
  • init-hall.com
  • de-scre.com

wget (1) などで文中の URL にアクセスしてみると、 どのリンクも最終的に pc.exsr.net にリダイレクトされている様。

$ whois exsr.net

Registrars.
Domain Name: exsr.net
Registry Domain ID:
Registrar WHOIS Server: whois.discount-domain.com
Registrar URL: http://www.onamae.com
Updated Date: 2013-11-19 10:05:11.0
Creation Date: 2013-11-14 11:32:19.0
Registrar Registration Expiration Date: 2014-11-14 11:32:19.0
Registrar: GMO INTERNET, INC.
Registrar IANA ID: 49
Registrar Abuse Contact Email: abuse@gmo.jp
Registrar Abuse Contact Phone:
Domain Status: ACTIVE
Registry Registrant ID:
Registrant Name: Hiroshi Tsumura
Registrant Organization: skypia
Registrant Street1: Minamisenba 3-2-28
Registrant Street2:
Registrant City: Oosaka-shi Chuuou-ku
Registrant State/Province: Osaka
Registrant Postal Code: 542-0081
Registrant Country: JP
Registrant Phone: +81.0668091939
Registrant Phone Ext:
Registrant Fax: +81.0668091940
Registrant Fax Ext:
Registrant Email: makaimakau4ah555@yahoo.co.jp
Registry Admin ID:
Admin Name: Hiroshi Tsumura
Admin Organization: skypia
Admin Street1: Minamisenba 3-2-28
Admin Street2:
Admin City: Oosaka-shi Chuuou-ku
Admin State/Province: Osaka
Admin Postal Code: 542-0081
Admin Country: JP
Admin Phone: +81.0668091939
Admin Phone Ext:
Admin Fax: +81.0668091940
Admin Fax Ext:
Admin Email: makaimakau4ah555@yahoo.co.jp
Registry Tech ID:
Tech Name: Hiroshi Tsumura
Tech Organization: skypia
Tech Street1: Minamisenba 3-2-28
Tech Street2:
Tech City: Oosaka-shi Chuuou-ku
Tech State/Province: Osaka
Tech Postal Code: 542-0081
Tech Country: JP
Tech Phone: +81.0668091939
Tech Phone Ext:
Tech Fax: +81.0668091940
Tech Fax Ext:
Tech Email: makaimakau4ah555@yahoo.co.jp
Name Server: ns1.value-domain.com
Name Server: ns2.value-domain.com
DNSSEC:
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2013-11-19 10:05:11.0 <<<
    
…だそうです。

迷惑メイルの差し出しドメインを whois (1) してみると 殆どが Organization に exsrskypia と書かれている様ですね。
ちなみに exsrskypia検索すると 色々と出てきますね。
(どちらも結構有名みたいですが繋がってるんですかね)

追記

gTLD を変更する様ですね。 docomo の迷惑メイルは部分一致なので gTLD 無しの登録が良いかも?

2014/07/14

太陽のたまご♪

去年は佐藤錦だったので2年ぶりの完熟マンゴー。

Image: IMG_1634.jpg

太陽のたまご

娘も成長して普通に食べる様になったので今年は 6 個です。
素晴らしく甘く美味しい自然の恵みに感謝!

2014/06/19

Amazon AWS 上でホスト情報を取得する

Amazon AWS で ELB + AutoScaling を利用している場合など、 IP アドレスが頻繁に変わってしまうので、 グローバルIP、プライベートIP を取得して一覧表示するスクリプト。
ホスト名は Name タグの Value に格納されている必要がある。
aws コマンドは EC2 インスタンスで Amazon Linux を起動した場合は 標準でインストールされている筈。
EC2 インスタンスに適切な role が設定されていれば aws はそのまま動作するが、 role が設定されていない場合でも設定する事で利用可能になる。

引数でホスト名 (Name タグで指定された値) が指定された場合、 デフォルトではグローバル IP のみを出力するが -p オプションでプライベートIP のみを表示する。

  1#!/bin/sh
  2
  3# リージョン
  4region="--region ap-northeast-1"
  5# 出力はテキスト形式
  6output="--output text"
  7# 出力項目を指定 (ホスト名(=タグ)、インスタンスID、パブリックIP、プライベートIP
  8base="--query Reservations[*].Instances[*]."
  9# Name タグの値表示
 10name="Tags[?Key==\`Name\`].Value,"
 11# インスタンスID、パブリックIP、プライベートIP
 12default="${name}InstanceId,PublicIpAddress,PrivateIpAddress" 
 13# フィルタ指定 (running 状態のみ出力)
 14filter="--filter Name=instance-state-name,Values=running"
 15
 16# aws コマンド
 17aws="/usr/bin/aws ec2 describe-instances ${region} ${output}"
 18
 19# メイン関数
 20function    doit()
 21{
 22
 23    local   _filter _query
 24
 25    if [ -n "${1}" ]
 26    then
 27        _filter="${filter} Name=tag:Name,Values=${1}"
 28        _query=${base}[${3}${2}]
 29    else
 30        _filter=${filter}
 31        _query=${base}[${default}]
 32    fi
 33
 34    ${aws} ${_filter} ${_query}
 35
 36}
 37
 38# オプション解析
 39if opt=`getopt p $*`
 40then
 41    set -- ${opt}
 42    while [ -n "${1}" ]
 43    do  
 44        case "${1}" in
 45            -p )
 46                target=PrivateIpAddress;;
 47            -- )
 48                shift
 49                break;;
 50        esac
 51        shift
 52    done
 53else
 54    echo "Usage: ${0##*/} [-p][host [... host]" 1>&2
 55    exit 255
 56fi
 57
 58if [ $# -eq 1 ]
 59then
 60    doit ${1} ${target:-PublicIpAddress}
 61elif [ $# -gt 0 ]
 62then
 63    for i in $*
 64    do
 65        doit ${i} ${target:-PublicIpAddress} ${name}
 66    done | awk '{ if(NR % 2) ip = $0; else printf "%s   %s\n", $0, ip }'
 67else
 68    doit | awk '{ if(NR % 2) ip = $0; else printf "%s   %s\n", $1, ip }'
 69fi 
    

2013/11/23 追記

複数ホスト名が指定された場合はホスト名も表示する様変更。


Copyright © 2008-2020 Mitzyuki IMAIZUMI. All rights reserved.