LINUX 五月 25, 2023

删除文件不释放空间

文章字数 1.6k 阅读约需 1 mins. 阅读次数 6

linux删除日志但没有释放空间问题溯源

删除正在被占用的日志文件时,存储空间没有被释放.

rm filename

命令删除文件后,

df -h

按G查看磁盘使用情况.发现空间没有被释放掉.

lsof |grep delete

通过上述命令可以查看删除文件被占用情况.第二列为对应应用的PID.

image-20210514133833173

kill掉相应的应用后文件被占用的空间被释放.

image-20210514134207251

总结:

当log文件过大,被错误日志塞满磁盘时,使用rm删除文件无法清除被占用的文件空间.需要停止占用的应用.

若想不停止服务来清理空间,可以使用 echo "" > filename 来覆盖文件.这样文件没有删除,但存储空间被删除了.

lsof: 列出打开文件 [在Unix中一切(包括网络套接口)都是文件]

获取网络信息

语法:

lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

eg:

lsof -i 4 获取使用ipv4的网络连接信息

lsof -i TCP 获取使用tcp的网络连接信息

lsof -i -sTCP:LISTEN lsof -i |grep -i LISTEN 找出正等候连接的端口

lsof -u konghenying 显示指定用户[konghenying]打开了什么

lsof -u ^konghenying 显示除指定用户外打开了什么

lsof -c command 查看指定命令正在使用的文件或网络连接

lsof -p pid 查看指定进程正在使用的文件或网络

lsof /dir 显示与指定文件交互的所有一切

lsof +d /dir 显示目录下被进程打开的文件 [+D 递归]

lsof |more 通过more方式的形式展示过长的列表

0%