没有更多的磁盘空间在服务器上

在我们的一台服务器上出现了一些错误的php代码,这些代码试图打开一个不存在的文件,最后我们得到了尚未configuration的大型apache日志文件。 我们刚刚删除了这些日志文件。 之后,我们看到我们的磁盘没有真正清理。 df -h的输出显示如下

Filesystem Size Used Avail Use% Mounted on /dev/sda1 18G 16G 1.1G 94% / udev 999M 12K 999M 1% /dev tmpfs 403M 848K 402M 1% /run none 5.0M 0 5.0M 0% /run/lock none 1007M 72K 1007M 1% /run/shm /dev/mapper/vg_ftp-ftp 9.9G 5.3G 4.2G 56% /mnt/local/ftp 

Inodes似乎也可以

 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 1168128 227009 941119 20% / udev 215094 442 214652 1% /dev tmpfs 219463 384 219079 1% /run none 219463 6 219457 1% /run/lock none 219463 3 219460 1% /run/shm /dev/mapper/vg_ftp-ftp 655360 1553 653807 1% /mnt/local/ftp 

经过dundu的调查,我们仍然无法find空间已经消失的地方。 后来我们以为是开放的文件处理程序,所以我们做了lsof | grep删除了给我们几个文件,包括/ sbin / mountall这有点吓人。

 mountall 287 root txt REG 8,1 120404 9334 /sbin/mountall (deleted) mysqld 615 mysql 4u REG 8,1 0 416 /tmp/iba1fEnV (deleted) mysqld 615 mysql 5u REG 8,1 0 899 /tmp/ibcxXlJG (deleted) mysqld 615 mysql 6u REG 8,1 0 900 /tmp/ibdby44r (deleted) mysqld 615 mysql 7u REG 8,1 0 901 /tmp/ibYaPXvd (deleted) mysqld 615 mysql 11u REG 8,1 0 986 /tmp/ibS9XlvZ (deleted) ntpd 1231 ntp 3r REG 8,1 481 1427 /etc/network/interfaces~ (deleted) 

我们正试图避免重新启动 。 有没有人有一个想法,这可能来自或我们可以检查以find缺失的空间?

你删除的文件仍然是开放的,Apache将写入它。 您将需要重新启动Apache以允许它创build一个新文件。 优雅的重新启动应该可以做到

 apachctl -k graceful 

要么

 apache2ctl -k graceful 

或任何您的发行版使用。

你是否尝试过sync运行? 通常应该每几分钟至less自动执行一次,但是谁知道。

另外,你是怎么研究du ? 也许这些文件中的某些文件被旋转到某个其他目录,并且你还没有注意到它们还没有被删除呢?

您也可以尝试运行find / -size +10000000c来查找大于10MB的文件。