ddコマンドでmicroSDからデータを吸い出した
MacBook Proのローカルのストレージがぎゅうぎゅうだったので、ここ1年くらいはmicroSDカード挿しっぱにしてそこにiTunesライブラリを追い出して運用してたんだけど、さいきんmicroSDがOS側でアンマウントされまくるようになってしまった。Time Machineバックアップの対象外だしふっ飛ぶのはちょっと怖いな…と思い、rsyncでローカルにコピーしてたらその最中にもバンバンアンマウントされて大変穏やかでない。
そんな状況だったので、ddコマンドでデバイスをまるごとコピーした。 dd あんまり使ったことないけど、至って普通の使い方だと思います。
sudo dd if=/dev/disk3s1 of=/Users/futonchan/Desktop/sdcard.img
デバイス名 (disk3s1) は、マウントしたときに df コマンドで見ればいいが、マウントできない状態でも、ディスクユーティリティで対象のパーティションを選択して「情報(⌘i)」を表示すると確認できる。
rsyncではコケまくったけど、ddではちゃんと1発で22GB程度のダンプがとれた。デスクトップ上にできあがったディスクイメージを開くと、ふつうにSDカードを挿した時のように /Volumes/ の下にマウントしてくれるのでしかるべき場所にファイルコピーをする。
スペース区切りのリストをxargsに渡す方法が徐々に短くなっていく様子
#1
echo 'a.hatena.ne.jp d.hatena.ne.jp f.hatena.ne.jp' | tr ' ' '\n' | xargs -I%% host %%
#2
echo {a,d,f}.hatena.ne.jp | tr ' ' '\n' | xargs -I%% host %%
#3
echo -e {a,d,f}.hatena.ne.jp"\n" | xargs -I%% host %%
サンプルで使うドメインのセレクトが古い人間っぽいなと思った。
Tampermonkey + Python SimpleHTTPServer で Google Chrome での UserScript 開発を若干ラクにする
Google Chrome はUserScriptを直接インストール出来ないので、開発のときにスクリプトを更新したいときも chrome://extension にファイルをドロップとかしないといけなくて大変めんどい。 Tampermonkey を入れておくと、HTTPごしにUserScriptのインストールができるので、これで少しラクできる。といっても半自動化…。
Bashパラメータ展開+xargs でいい感じにリネーム
ls -1 aaa.example.jp.txt bbb.example.jp.txt ccc.example.jp.txt ddd.example.jp.txt eee.example.jp.txt
ls -1 | xargs -I{} bash -c 'f={}; mv ${f} ${f/.jp/.jp.201307}'
ls -1 aaa.example.jp.201307.txt bbb.example.jp.201307.txt ccc.example.jp.201307.txt ddd.example.jp.201307.txt eee.example.jp.201307.txt
VirtualBoxの仮想マシンをコンソール画面なしで起動する
VagrantでVM起動してもコンソールウィンドウ出てこないのなんなん、とおもってたらHeadlessってモードがあることを知った。
nohup VBoxHeadless --startvm vm1 &
普通に実行しちゃうと、ターミナル開きっぱにしないといけなくて不便。ちなみにターミナル閉じると仮想マシンの実行は“中断”に移行する。
JSONオブジェクトを文字列に変換する
console.log(JSON.stringify(obj));
via http://stackoverflow.com/questions/4933217/print-json-parsed-object
あと、↓のJSON visualizerの出力がいい感じだった。
http://chris.photobooks.com/json/
curlでHostを指定してアクセスする
接続先のIPアドレスを指定して(=ホスト名から正引きをしないで)HTTPのリクエストをしたいとき、コマンドラインだとcheck_httpくらいでしかできないとおもってた。
/usr/lib64/nagios/plugins/check_http -H example.com -I 10.0.0.10 -u /home/
curlとかwgetにも、check_httpの -I オプションみたいなのほしいなー、でもないよなー、と諦めていたら。
curlの-HオプションでHostヘッダーを指定すればよい、と言っているひとがいて感動したので情報共有します。
curl -v http://10.0.0.10/home/ -H 'Host: example.com'