删除文件后磁盘空间不释放问题
收到告警,磁盘空间快满了。
$ df -h www.zhishiwu.com
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 15G 937M 13G 7% /
/dev/sda3 473G 105G 344G 24% /u02
/dev/sda8 8.6G 7.3G 819M 91% /tmp
/dev/sda7 9.5G 412M 8.6G 5% /home
/dev/sda6 15G 1.9G 12G 14% /usr
/dev/sda5 15G 1015M 13G 8% /var
/dev/sda1 122M 11M 105M 10% /boot
tmpfs 24G 92K 24G 1% /dev/shm
/dev/sdb1 1.4T 864G 437G 67% /u01
上去看了下tmp目录,
7.1G tmp_collect_msg_u02_io_peien_20111130.log
文件很大,于是rm掉。但是df发现磁盘空间任然没有释放。
$ rm tmp_collect_msg_u02_io_peien_20111130.log
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 15G 937M 13G 7% /
/dev/sda3 473G 105G 344G 24% /u02
/dev/sda8 8.6G 7.3G 819M 91% /tmp
/dev/sda7 9.5G 412M 8.6G 5% /home
/dev/sda6 15G 1.9G 12G 14% /usr
/dev/sda5 15G 1015M 13G 8% /var
/dev/sda1 122M 11M 105M 10% /boot
tmpfs 24G 92K 24G 1% /dev/shm
/dev/sdb1 1.4T 864G 437G 67% /u01
172.23.142.7:/nas/mysql_bak05
35T 23T 12T 66% /bak3306
没有释放的原因应该是该文件是被打开的。于是ps aux |grep tmp,发现以下进程:
$ ps axu |grep tmp
mysql 6007 0.0 0.0 8700 960 ? Ss 2011 0:00 /bin/sh -c /home/mysql/collect_msg_u02_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u02_io_peien_20111130.log 2>&1
mysql 6008 0.0 0.0 8700 964 ? Ss 2011 0:00 /bin/sh -c /home/mysql/collect_msg_u01_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u01_io_peien_20111130.log 2>&1
mysql 6009 0.0 0.0 8704 756 ? S 2011 9:49 /bin/sh -c /home/mysql/collect_msg_u02_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u02_io_peien_20111130.log 2>&1
mysql 6011 0.0 0.0 8704 764 ? S 2011 11:44 /bin/sh -c /home/mysql/collect_msg_u01_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u01_io_peien_20111130.log 2>&1
mysql 31669 0.0 0.0 8700 956 ? Ss 2011 0:00 /bin/sh -c /home/mysql/collect_msg_u02_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u02_io_peien_20111130.log 2>&1
mysql 31670 0.0 0.0 8704 756 ? S 2011 10:09 /bin/sh -c /home/mysql/collect_msg_u02_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u02_io_peien_20111130.log 2>&1
mysql 31674 0.0 0.0 8700 960 ? Ss 2011 0:00 /bin/sh -c /home/mysql/collect_msg_u01_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u01_io_peien_20111130.log 2>&1
mysql 31678 0.0 0.0 8704 760 ? S 2011 12:09 /bin/sh -c /home/mysql/collect_msg_u01_io_peien_20111123.sh >>/tmp/tmp_collect_msg_u01_io_peien_20111130.log 2>&1
11年的进程,这些人真是不靠谱,测试脚本,搞完就应该清理啊。算了,kill掉这些进程。磁盘空间释放。
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 15G 937M 13G 7% /
/dev/sda3 473G 105G 344G 24% /u02
/dev/sda8 8.6G 190M 7.9G 3% /tmp
/dev/sda7 9.5G 412M 8.6G 5% /home
/dev/sda6 15G 1.9G 12G 14% /usr
/dev/sda5 15G 1015M 13G 8% /var
/dev/sda1 122M 11M 105M 10% /boot
tmpfs 24G 92K 24G 1% /dev/shm
/dev/sdb1 1.4T 864G 437G 67% /u01
172.23.142.7:/nas/mysql_bak05
35T 24T 12T 66% /bak3306