四种方法"/>
清空日志四种方法
清空日志四种方法
进程任然存(有程序一直在读写log文件)在没被杀死或者没有停止的时候。如果删除了日志文件(日志文件可能是实时读写的),那么磁盘的空间不会被释放。
有时候如果贸然删除了日志文件,可能正在跑的服务日志就没地方写,但是该服务如果一直打开了该文件,那么写的时候,服务只认文件描述符,虽然你把文件删除了,但是之前建立的 文件描述符一直存在,该服务还可以一直在该文件描述符的位置上写log,即便是你删除后,重新创建一个同样命名的文件,该服务也不会将log写到重新创建的文件中,还是因为文件描述符已经存在了,重新创建文件后,不是原来的文件描述符。
这样导致的问题是,服务一直写log,硬盘空间一直往上升,你却找不到大文件在哪里,长时间运行,导致硬盘空间被占满。
所以最好的方法就是清空文件,保留原文件,只能将原文件的内容清空。
可以在命令行输入以下指令手动清空:
1、>/logs/file.log
2、cat /dev/null >/logs/file.log
3、echo "">/logs/file.log
脚本中常用清空日志方法:
用冒号
4、:>/logs/file.log
注意:
在执行指令的时候,虽然有时候文件确实被清空了,但是使用 ll 或者 ls 指令查看的时候,文件的大小并没有变化,但是在指令输入前后如果使用df -h指令查看log文件所在盘符的大小,发小log文件所在盘符的空间确实被释放了。
或者在log所在文件夹使用du -sh *指令,查看,也会发现log文件的大小变了。
之所以使用 ll 或者ls 指令查看时,文件大小没有变化,可能是该文件一直被进程占用,ll 或者ls查看的逻辑有一些不同吧。
转载于:
更多推荐
清空日志四种方法
发布评论