删除日志文件,空间没有回收
删除日志文件,空间没有回收
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 进程号