gracetory’s blog

東池袋にある合同会社グレストリのエンジニアブログです

Linuxでファイルを削除したのに残容量が変わらない時

f:id:grnishi:20200316014413p:plain

はじめに

週末、桜が開花したという事で靖国神社に行ってきましたが、標準木を見てもどれが咲いているのかさっぱりわからなかったgrnishiです。桜は8分咲きが綺麗です。

本題

先日、とあるサーバのディスク容量がいっぱいになりました。

Filesystem            Size  Used Avail Use% Mounted on
/dev/vda3              97G   97G   0  100% /

これはこれで恐ろしい話ですし、そもそも監視を入れておきなさいという話ですが、監視用スクリプトがコメントアウトされていました:P

さて、私は容量がやばくなった時はあたりを付けてチェックしていきます。大体容量の原因になるのはログファイルとかですから。 アタックされた時にapacheが大量にログを吐いたとか。

探していると、MySQLのクエリログが40Gぐらいになっている事を発見し削除しました。

rm -Rf query.log

そして、再度ディスク容量を確認しました。

df -ah
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda3              97G   97G   0  100% /

あれ?減っていない。なんでだろう?ファイルはきちんと削除されているのに。

当たり前といえば当たり前なのですが、ファイルを削除してもそのファイルをプロセスが掴んでいる場合は削除されずにls等で見えなくなるだけです。

というわけで、今回はmysqldがこのファイルを使用中でしたのでmysqldを再起動して対応しました。

df -ah
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda3              97G   54G   38G  59% /

ちなみに、どのプロセスが当該ファイルを使用しているかわからない場合は下記コマンドでプロセスを探します。

sudo lsof | grep query.log
mysqld    25544   mysql   13w      REG              252,3  17088690    3407981 /var/log/mysql/query.log

以上。小ネタではありますが少々焦ったので報告となります。

下記を参考にしました。

easyramble.com