お酒が飲みたいお年頃です。el(える)です。
最近は山の話ばかりなので、Linuxの話でもしようと思います。
Linuxを使っていると、どうしても気になるのがディスク使用率ですよね。
以前働いていた際にもディスク容量の問題が多々ありました。
僕の知識は去年で止まっているので古いかもしれませんが、
未来の自分のためにも書き残しておきます。
ディスク使用率確認
ディスク使用率は以下のコマンドで確認ができます。
$ df
dfオプション
-a:利用可能なファイルシステムを全部表示します。
-h:容量にあった単位を自動的に表示してくれます。
-l:ローカルのファイルシステムのみ表示します。
-t ファイルシステム:指定したファイルシステムを表示します。
-T:ファイルシステムを表示します。
僕が働いていた時は、このようにコマンドを使っていました。
$ df -h
まず、全体の容量を確認します。どこに容量を取られているのか確認する必要がありますからね。
ここで一番容量の多い部分のディレクトリを見つけると、次のコマンドを使います。
$du
duオプション
-a:すべてのファイルサイズを表示します。
-b:バイトでサイズを表示します。
-k:キロバイト単位で表示します。
-m:メガバイトで単位を表示します。
-h:自動的に単位を計算して表示します。
-s:指定したディレクトリの使用率のみを表示します。
-L:シンボリックリンクがある場合に、元ファイルを計算して表示します。
-c:合計容量を表示してくれます。
よく使っていたコマンドは、これでした。
$ du -sh /容量の多いディレクトリ名
これで、少しずつ容量の多いディレクトリを探っていきます。
一気にやるとサーバに負荷がかかるので気を付けて。
最終的にある程度絞り込めたら、次のコマンドです。
$ du -s /ディレクトリ名 | sort -nr
これで、容量の多い順に並べます。
そうしたら、あとは中身を見て、いらないデータを消すだけですね。
3か月間だけ残すのならシェルを作って、
files=$( find /ディレクトリ -mtime + 90 -name “*.log” )
for file in $files
do
rm “$file”
done
と、このようにfor文で90日より前の日付を取得して、削除することもできます。
もしくはコマンド一発で、
$ find /ディレクトリ名 -mtime +90 -name “*.log” | xargs rm
ただし、消す際は怖いので、一度backupを取るか、一覧に出力させることをおすすめします。
シェルの場合だとrmをechoにすればいいし、ワンライナーだと、パイプから下を消せばいいです。
ファイルに一覧を出力してから、ファイルを読み取って記載されているパスを消すというのもおすすめです。
というか間違いがとても少なくなると思います。
終わりに
今はもうこんな古いコマンドは実行してないのかな。
時代に取り残されているので、ちょっと不安です。
最新技術が登場してワンコマンドで消せたりディスク容量なんて見なくて良くなっていたらどうしよう・・・
何かの役に立てば幸いです。
あと未来の僕、分からなくなったら自分のブログ見ろよ。
※間違っている部分がありましたら遠慮なくコメント欄に記載ください。
おすすめのおやつ(ビスコ)です。
それではまた次回。
大変勉強になります。
ありがとうございます。
いえ、僕も書いておかないと忘れそうでしたので。
お役に立てれば幸いです。