减小文件大小

减小文件大小

我有两个文件,每个文件的/var/log分区大小都超过 3GB,我需要释放一些空间而不删除或移动文件,因为这会中断我的系统。

我也无法删除带有vi + dd.有数千行。

有什么有用的想法吗?

文件:

1-messages

2- 我的网络服务器日志文件。

答案1

您也许能够截断文件,与使用不同的是,rm即使文件仍然打开,这也会释放磁盘空间:

> /var/log/big1.log
> /var/log/big2.log

但请先在单独的系统上进行测试。检查文件的索引节点号是否发生变化。如果没有,你很好。

答案2

如果您想保留现有文件的全部内容,则需要将它们压缩到其他地方的临时空间,然后用其压缩的等效文件替换每个未压缩的文件。否则,只需删除较旧的日志文件或将其存档到其他地方。

这里有一个压缩日志文件而不丢失其内容的建议。但是,您需要注意,如果您继续增加日志文件,它只会推迟文件系统填满的问题,而不会永久解决它。

识别要压缩的旧文件。 (这些都不能在使用或打开现在用于记录。)在我的示例中,这是big1.log.

确定可以容纳最大的未压缩文件的文件系统块。在我的示例中,我将假设这是/home.

在现实场景中,您可以使用循环for来迭代一系列文件。以下是单个文件的步骤:

logfile='/var/log/big1.log'                      # The logfile to be compressed

if gzip -c "$logfile" >/home/log.gz
then
    touch --reference "$logfile" /home/log.gz    # Capture timestamp of last update
    chown --reference "$logfile" /home/log.gz    # Capture ownerships
    chmod --reference "$logfile" /home/log.gz    # Capture permissions
    rm -f "$logfile"                             # Make space
    mv -f /home/log.gz "$logfile.gz"             # Rename with correct suffix
fi

相关内容