删除日志文件,空间没有回收

删除日志文件,空间没有回收

rm -rf /home/zookeeper/logs/zookeeper-root-server-node03.out

# 使用以下命令查看没有发现大文件
du -h --max-depth=20  /home | grep -E "^[0-9]*\.?[0-9]*G"

#未释放磁盘空间原因
	#在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).
	#然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

#如何让进程释放呢
 	#一种方法是kill掉相应的进程,或者停掉使用这个文件的应用,让os自动回收磁盘空间
	#我这个环境有很多进程在使用的这个文件,停掉进程有点麻烦,再有就是风险很大
	
	#当linux打开一个文件的时候,Linux内核会为每一个进程在/proc/ 『/proc/nnnn/fd/目录(nnnn为pid)』建立一个以其pid
	#为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。

	#kill进程是通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件。
	#这是一项高级技术,仅到管理员确定不会对运行中的进程造成影响时使用。应用程序对这种方
	#式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题


# 没有就安装 yum install -y lsof
# 这里是/home满了,如果是/满了,可能装不上

# 查看所有被删掉并缓存的进程
# -w 是指忽略这些错误 
lsof -w | grep deleted | grep /zookeeper

kill -9 进程号
posted @ 2021-08-30 17:46  1769987233  阅读(103)  评论(0编辑  收藏  举报