日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux rm 不释放_linux删除文件空间不释放问题解决

發布時間:2024/4/17 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux rm 不释放_linux删除文件空间不释放问题解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景描述

某天,收到Prometheus報警,生產中某臺機器出現磁盤空間不足報警,該臺服務器是mysql其中一臺從庫,遠程登錄到該服務后,排查磁盤空間的原因,發現mysql日志文件過多,于是清空日志文件,但是日志清理后,發現磁盤空間并沒有釋放,下面分析處理過程和原因

日志清理后,查看磁盤空間

[root@hhjy3-21 ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda3 xfs 98G 65G 33G 73% /

devtmpfs devtmpfs 1.5G 0 1.5G 0% /dev

tmpfs tmpfs 1.5G 0 1.5G 0% /dev/shm

tmpfs tmpfs 1.5G 8.9M 1.5G 1% /run

tmpfs tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup

/dev/sda1 xfs 1014M 120M 895M 12% /boot

tmpfs tmpfs 293M 0 293M 0% /run/user/0

原因

在Linux或Unix系統中,通過使用rm刪除文件的原理,rm命令只是從文件系統的目錄結構上解除鏈接(unlink),也就是說如果文件是被打開的(有一個進程正在使用該文件句柄),那該進程還是可以讀取已刪除的文件,而我刪除的正是在運行中的MySQL的Logs,刪除的時候文件正在被使用中,所以并不釋放磁盤空間。

解決方法

Linux中使用lsof | grep deleted命令可以獲取一個已經被刪除但是仍然被應用程序占用的文件列表

[root@hskj3-21 ~]# lsof | grep -i delete

mysqld_sa 1311 root 2u CHR 136,0 0t0 3 /dev/pts/0 (deleted)

mysqld 1607 mysql 1w REG 8,3 312627 1700052 /mysql/3306/logs/mysql.log (deleted)

mysqld 1607 mysql 2w REG 8,3 312627 1700052 /mysql/3306/logs/mysql.log (deleted)

mysqld 1607 mysql 5u REG 8,3 0 134335687 /mysql/3306/tmp/ibz8LDOk (deleted)

mysqld 1607 mysql 6u REG 8,3 0 134374089 /mysql/3306/tmp/ibprHY8C (deleted)

mysqld 1607 mysql 7u REG 8,3 0 135173881 /mysql/3306/tmp/ibS7LjtV (deleted)

mysqld 1607 mysql 8u REG 8,3 0 134429856 /mysql/3306/tmp/ibX2QZcx (deleted)

mysqld 1607 mysql 12u REG 8,3 0 134429858 /mysql/3306/tmp/ibMxDsTQ (deleted)

mysqld 1607 mysql 21w REG 8,3 153673 1700035 /mysql/3306/logs/slow.log (deleted)

mysqld 1607 1609 mysql 1w REG 8,3 312627 1700052 /mysql/3306/logs/mysql.log (deleted)

......

用該命令后,我發現占用的文件列表非常多,我們需要將占用已刪除文件的進程給一個一個的殺掉

[root@hskj3-21 ~]# kill -9 PID

在線清空文件

其實上面那種直接rm刪除文件的方法非常危險,特別是針對MySQL,Mongodb,數據相關的服務,rm刪除之后,沒法釋放空間,還得手動重啟或者kill這些數據相關的服務進程,會影響到業務。

可以使用以下方法,磁盤空間不足可以馬上釋放,也可以保證進程繼續向文件寫入日志,這種方法適合在線清理。

$ echo >xxx/log

總結

以上是生活随笔為你收集整理的linux rm 不释放_linux删除文件空间不释放问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。