pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Windows PC のディスク使用量の時系列変化を Bash on Windows 上のワンライナーで記録してみる。

とある処理でディスクの使用量がどのように変化するかを記録する必要が出てきたので、Bash on Windowsワンライナーでやってみることにします。

まずはディスク使用量といえば df コマンド。Bash on Windows で実行すると、こうなります。

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs         236091388 152891880  83199508  65% /
data           236091388 152891880  83199508  65% /data
cache          236091388 152891880  83199508  65% /cache
mnt            236091388 152891880  83199508  65% /mnt
none           236091388 152891880  83199508  65% /dev
none           236091388 152891880  83199508  65% /run
none           236091388 152891880  83199508  65% /run/lock
none           236091388 152891880  83199508  65% /run/shm
none           236091388 152891880  83199508  65% /run/user
C:             236091388 152891880  83199508  65% /mnt/c
D:             937560060 865705100  71854960  93% /mnt/d
E:              12347388  10928952   1418436  89% /mnt/e
root           236091388 152891880  83199508  65% /root
home           236091388 152891880  83199508  65% /home

なるほど、Bash on Windows だと、Windows のドライブは C: とかで見えているわけですね。

ならば、df の出力を awk でフィルタしてみよう。こんなふうに。

$ df | awk '$1 == "C:" { print systime(),$2,$3,$4 }'
1494572754 236091388 152891884 83199504

これで UNIX秒、ディスク容量, 使用量, 空き容量がとれました。

あとは、これをずーっと実行したいので、while ループにしつつ、10秒ごとに記録するようにしてみる。

$ while : ; do df | awk '$1 == "C:" { print systime(),$2,$3,$4 }' ; sleep 10 ; done
1494572758 236091388 152891884 83199504
1494572768 236091388 152891884 83199504
1494572778 236091388 152891884 83199504

OK、こんなもんですね。あとは適当なファイルにリダイレクトすればよい。tee [ファイル名] とすれば、ファイルに保存しつつ表示してくれるので、さらによし。