ディスク容量が逼迫しているけど消せるファイルが無い時に試すコマンド

こんにちは、grasys加藤です。

気がついたらCentOSサーバのディスク容量がいっぱいになっていること、ありませんか?

ディスク容量が今すぐ空きが欲しい、 でも消せるファイルが見当たらないし、 クライアントのレスポンスも悪い・・・

そんな時にもしかすると少し容量が空くかもしれないtipsです。

私がよく取るのディスク容量を空けるための手法です。

  • ログファイルの退避
  • 非圧縮ログファイルの圧縮
  • キャッシュの削除

で、キャッシュの削除でよくやるのが yum のキャッシュ削除 です。

インストール・アップデートで利用した rpm パッケージやデータキャッシュ用ファイルは /var/cache/yum に保存されます。

$ du -sh /var/cache/yum
233M    /var/cache/yum

思った以上に多く、233M溜まっています。ひとまず、すぐにでも空けたい時!

$ yum clean all
Loaded plugins: changelog, fastestmirror, merge-conf
Cleaning repos: base extras google-cloud-compute google-cloud-sdk updates
Cleaning up list of fastest mirrors
Other repos take up 99 M of disk space (use --verbose for details)
$ du -sh /var/cache/yum
99M     /var/cache/yum

134M減りました

わーい!といつも喜んでいましたが、待てよ、 なんかメッセージ出てる

Other repos take up 99 M of disk space (use --verbose for details)

たしかに!まだ99Mも消せますからね。

忠告通りに --verbose をつけてみます。

$ yum clean all --verbose
Loading "changelog" plugin
Loading "fastestmirror" plugin
Loading "merge-conf" plugin
Config time: X.XXX
Yum version: X.X.X
Cleaning repos: base extras google-cloud-compute google-cloud-sdk updates
Operating on /var/cache/yum/x86_64/7 (see CLEAN OPTIONS in yum(8) for details)
Disk usage of /var/cache/yum/*/* after cleanup:
0      enabled repos
99 M   disabled repos:
  90 M   /var/cache/yum/x86_64/7/epel
  7.7 M  /var/cache/yum/x86_64/7/percona-release-x86_64
  1.1 M  /var/cache/yum/x86_64/7/jenkins
0      untracked repos
1.8 k  other data:
  1.8 k  /var/cache/yum/x86_64/7/timedhosts
99 M   total

なるほどね、epelが90MBも使ってるのね。(この環境はepelはenabled=0にしています)

ちなみに --verbose-v でもいけます。

これをまとめて消すのはお馴染みの --enablerepo です。

$ yum clean all --enablerepo="*"
Loaded plugins: changelog, fastestmirror, merge-conf
Cleaning repos: C7.0.1406-base C7.0.1406-centosplus C7.0.1406-extras ~以下省略
$ yum clean all -v
Loading "changelog" plugin
Loading "fastestmirror" plugin
Loading "merge-conf" plugin
Config time: X.XXX
Yum version: X.X.X
Cleaning repos: base extras google-cloud-compute google-cloud-sdk updates
Operating on /var/cache/yum/x86_64/7 (see CLEAN OPTIONS in yum(8) for details)
Disk usage of /var/cache/yum/*/* after cleanup:
0      enabled repos
0      disabled repos
0      untracked repos
1.8 k  other data:
  1.8 k  /var/cache/yum/x86_64/7/timedhosts
1.8 k  total

timedhostsはミラーの速度などが残っているのでそのままにしておきましょう。

$ du -sh /var/cache/yum
8.0K    /var/cache/yum

これだけ削除できれば一時しのぎには十分ではないでしょうか?

ディスクに溜まる不要ファイルの個人的ベスト3

3位: ローテート漏れの巨大ログファイル
2位: 誰が作ったかわからない◯年前のタイムスタンプの .org ファイル or ディレクトリ
1位: /home/個人名 にある何かわからないファイル (しかも非圧縮)

教訓

ちゃんとディスク容量を監視しましょう