by shigemk2

当面は技術的なことしか書かない

memo lsof file descriptor

memo lsof file descriptor

lsofで存在しない(既に消された)ファイルに対してプロセスが動いているかどうか確認できる

こんなことができるのは、Linuxではファイルが使用中でもファイルを消せるから。使用中のファイルを消したら、プロセスだけが残る。

それを確認するためには、lsof(deleted)になっているプロセスでかつ、大きなファイルサイズのファイルにアクセスしようとしていたプロセスをサーチする。

# lsof | grep deleted | sort -k 7 -nr | head とか。

これはlsofでsize/offをhuman-readableにしている。 lsof | grep /var* | numfmt --field=8 --to=iec | head

なお、dfとかduとかで分かるのは論理ボリュームの使用量であるため、物理ディスクの使用量を知りたい場合は別の方法が必要になる。(lsblkfdisk -lでは分からなかった)

file descriptorは、プログラムがアクセスするファイルなどの識別子