web-dev-qa-db-ja.com

Ubuntu 16.04 LTSでログファイルがスペース全体を消費します。修正しますか?

私は最近Linuxに入り、Windows 10を搭載したPCでデュアルブートしました。Ubuntu16.04にいくつかのファイルをインストールし、PCのUbuntuに41 GBのスペースを割り当てました。しかし、突然、プロンプトが出て、スペースがあまり残っていないことを確認しました。少し調べてみると、ほとんどがログファイル、より具体的には「syslog.1」ファイルに食われていることがわかりました。私はアプリに混乱があり、それらの問題を繰り返し記録していると確信しています。ほとんどのアプリを削除して、やり直します。

しかし、今のところ、どのようにしてこのファイルをクリーンアップし、それが消費していた37 GBのスペースを解放するのですか?これは役立ちますか?これはフォーラムで見つけました。

Sudo gzip syslog.1

更新:

上記のコードは、37 GBのログファイルを約800 MBに圧縮することで機能しました。ただし、ログファイルが大きくなる原因となるエラーを見つけるための永続的な解決策を探しています。また、多くの.debファイルをインストールしました。また、ダウンロードする必要のある満たされていない依存関係がたくさんあります。このアクションを元に戻し、依存関係が満たされていないファイルを削除するにはどうすればよいですか?

私も試しました:

Sudo apt-get autoremove
Sudo apt-get clean

これらは機能しないようです。

3
2dsharp

特に、システムがほんの数日前の場合、37GBのログファイル自体が問題になります。ログファイルを監視して、何が起こっているのかを確認する必要があります。処理するには大きすぎるため、古いファイルを削除するのが最善です。それから logrotate をインストールできます。これを使用して、ログファイルをクリーンアップできます。ログファイルは、毎日、毎週、または必要に応じて「回転」できます。あなたの場合、それは毎日でなければなりません。次に、保持するログファイルの数を指定し、さらに古いログファイルを圧縮する必要があります。

37GBのファイルは4GBしか圧縮されていないため、5つを保持しなくても問題は発生しません。それはまだ極端ですが、これは単にlogrotationが何をすることができるかについてのアイデアを提供することです。

以下に、圧縮と遅延圧縮を使用したApacheのlogrotate構成を示します。ログを14日間保持します。あなたのログのために、あなたは良い設定が何であるかをググってください。

/var/log/Apache2/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if /etc/init.d/Apache2 status > /dev/null ; then \
                    /etc/init.d/Apache2 reload > /dev/null; \
                fi;
        endscript
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi; \
        endscript
}

すべてがうまく機能したら、ログローテーションを30日程度に戻すことができます。

ああ、これが毎日使用するシステムでない場合は、logrotateジョブを手動で実行してください。 cronjobが午前3時に実行するように設定されている場合、おそらく実行されず、問題は引き続き存在します。

更新

Logrotate構成にcompressを追加する必要があります。これを/etc/logrotate.dのすべての設定に追加できます。現在のログが大きすぎる場合は、削除するか圧縮したように圧縮します。 800MBはまだ何もしないことを考えるとまだ大きすぎるので、Sudo rm syslog.1.gzを削除し、大きすぎるものはすべて削除します。

2
SPRBRN

vi etc/logrotate.confの次のコードでlogrotateを使用することで、簡単に管理できます。

/var/log/syslog1
{
     daily

     size 100 M(/* It can be k ,M ,G etc*/)

     compress

     postrotate
         cat /dev/null >/var/log/syslog1 (/* It will make log file null*/)
     endscript

     mail [email protected]
     rotate 4         
}

次の方法で、サイズの大きいファイルを見つけることもできます。

du -a /var | sort -n -r | head -n 10
0
Avani badheka