删除巨型日志文件并未释放空间

删除巨型日志文件并未释放空间

我正在运行 Ubuntu 20.04,由于 VLC 和我的 NVIDIA 驱动程序存在错误,/var/log/ 文件夹中的 syslog.1 已满到 20GB+,因此我不得不将其删除。

我使用 sudo 打开了 nautilus,右键单击移至废纸篓,但文件始终未出现在那里,我猜是因为它的大小。该文件消失了,不久后被一个新的干净日志文件替换。

我的磁盘使用情况分析器显示磁盘只有 19 GB,但 nautilus 显示驱动器有 0/48.5 GB

我猜测某个进程正在保存该文件,但我不知道如何找到它或结束它。

答案1

要查找某个进程打开的大文件:

sudo lsof / | \
   awk '{if($7 > 1048576) print $7/1048576 "MB" " " $9 }' | \
   sort -n -u

但是,您还应该检查已删除(但打开)的文件,使用

sudo lsof / | \
    egrep 'PID|\(deleted\)'

这些命令序列非常方便,我将它们设为别名。引用起来很困难,因此我将其放入我的~/.bash_aliases

alias bigopenfiles='sudo lsof / | awk '\''{if($7 > 1048576) print $7/1048576 "MB" " " $9 }'\'' | sort -n -u'
alias deletedfiles='sudo lsof / | egrep '\''PID|\(deleted\)'\'''

答案2

问题很可能是日志文件仍然打开,如下所述:

答案非常详细,但基本上你可以:

  • 终止打开日志文件的进程
  • truncate日志文件是我喜欢的方法。

相关内容