日志文件占用了 Ubuntu 16.04 LTS 中的整个空间。如何解决?

日志文件占用了 Ubuntu 16.04 LTS 中的整个空间。如何解决?

我最近开始使用 Linux,它在我的 PC 上与 Windows 10 双启动。我在 Ubuntu 16.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

这些似乎不起作用。

答案1

37GB 的日志文件本身就是一个问题,尤其是当系统只有几天的时候。你必须监控日志文件才能知道发生了什么。最好是删除旧文件,因为它太大了,无法处理。然后你可以安装日志旋转。使用它,您可以清理日志文件。它可以每天、每周或任何您想要的时间“轮换”日志文件。对于您来说,应该是每天。然后,您指定要保留多少个日志文件,另外还需要压缩旧日志文件。

37GB 的文件压缩后只有 4GB,所以即使你必须保留其中的五个也不会有问题。这仍然有点极端,但这只是让你了解 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 点运行,它可能不会运行,您的问题将继续存在。

更新

您需要将其添加compress到您的 logrotate 配置中。您可以将其添加到 中的所有配置中/etc/logrotate.d。对于现在太大的日志,请删除它们或像您之前那样压缩它们。考虑到您永远不会用它做任何事情,800MB 仍然太多了,因此请将其删除:sudo rm syslog.1.gz,并删除任何太大的内容。

答案2

您只需使用以下代码中的 logrotate 来管理它即可vi etc/logrotate.conf

/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

相关内容