Linux インスタンスのディスク領域をクリーンアップする方法は?


運が良ければ、ディスクの使用状況はすでに監視されており、時間通りに警告を受けています.そうしないと、手遅れで、一部のアプリが機能しなくなってしまいます.できるだけ早く元に戻すために、インスタンス/サーバーにすばやく安全にスペースを確保するために私が長年にわたって見つけた便利なコマンドをいくつか紹介します.

もちろん、最初にSSH経由で接続し、sudo su -でルートになります

次に、Docker を使用してコンテナーを実行している場合は、次のようにします.
  • アプリがまだ実行されている場合は、Docker リソースをスムーズにクリーンアップします

  • docker images -q | xargs docker rmi
    docker container prune -f
    docker image prune -a -f
    docker system prune -a -f
    


  • アプリが既にダウンしている場合は、すべての Docker リソースを一度にクリーンアップします

  • docker system prune
    


  • コンテナーがそのログをローテーションしない場合、それは巨大なファイルを表している可能性があるため、クリーンアップしてください

  • cd /var/lib/docker/containers/<container_id>/ # a file <container_id>-json.log is supposed to be there
    truncate -s 0 <container_id>-json.log
    


    systemd で Linux ディストリビューションを使用している場合は、そのログを消去できます.

    cd /var/log/journal # they are here
    journalctl --disk-usage # have a look at how much you can reclaim
    journalctl --vacuum-time=7d # reclaim it (7d = keep logs from last week only)
    


    さらにスペースが必要な場合は、インスタンスの他の場所を探します.

    du -sh * | grep "G" # travel around to find most imposant directories
    


  • ログ ファイルの場合は切り捨てることができます: truncate -s 0 YOUR_LOGFILE.log
  • 不要になった古いファイルを含むディレクトリが見つかった場合:

  • pwd # DOUBLE CHECK that you are inside the right directory to clean
    find * -type f -mtime +100 -exec rm -rf {} \; # remove files not modified since 100 days for example
    


    これで問題がなくなり、アプリが再び実行されるはずです.そのためには、アプリを再デプロイ/再起動する必要があるかもしれません.

    最後に、継続的な改善の時が来ました:
  • このインスタンスのディスク容量が十分に監視されていること、および設定されたしきい値により、介入するのに十分な時間が確保されていることを確認してください
  • あなたの目標は、二度とそれをしないことです: このインスタンスの crontab に入れることができる簡単なクリーニング コマンドを見つけてください (例:
  • ).

    この記事が何らかの形で役に立ったかどうかお知らせください.このユースケース (決して面白いものではありません) に関するあなたの話や、個人的なヒントや提案もお待ちしています.

    素晴らしい一日をお祈りします!