问题是,下面列出的所有命令都会使文件大小为0(零),但是会持续一段时间。
生成新日志时,日志文件大小= 旧文件大小(截断前)+新日志消息大小。
这意味着截断不会释放文件占用的磁盘空间。
文件大小应与truncate命令后收到的新日志消息的大小无关。
在问这个问题之前,我已经尝试过以下选项。
- $> sysout.log
- $:> sysout.log
- $ cat / dev / null> sysout.log
- $ cp / dev / null sysout.log
- $ dd if = / dev / null of = sysout.log
- $ echo“”> sysout.log
- $ echo -n“”> sysout.log
- $ truncate -s 0 sysout.log
首先,我检查了文件大小(包含 10行日志消息)
[root @ mylaptop〜]#ls -lh sysout.log
-rw-r--r-- 1个根 6.0K 12月2日11:30 sysout.log
然后运行 truncate 命令
[root @ mylaptop〜]#截断-s0 sysout.log
[root @ mylaptop〜]#ls -lh sysout.log
-rw-r--r-- 1个根 0 12月2日11:31 sysout.log
几秒钟后 2行日志消息打印到文件中。但是文件大小是
[root @ mylaptop〜]#ls -lh sysout.log
-rw-r--r-- 1个根 6.3K 12月2日11:31 sysout.log
如您所见,它会增加文件大小。
如何释放磁盘空间?还是还有其他方法?