删除 500 万行日志后磁盘使用率升高

删除 500 万行日志后磁盘使用率升高

我有一个 2500 万行的日志文件。我使用 vim 手动从该文件中删除了 500 万行。以下是删除日志之前服务器的磁盘空间使用情况。我从/var/log/nginx/文件夹中删除了 nginx 日志。

$df -kh
Filesystem      Size  Used Avail Use% Mounted on
udev             15G   12K   15G   1% /dev
tmpfs           3.0G  500K  3.0G   1% /run
/dev/xvda1       48G   35G   11G  77% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             15G     0   15G   0% /run/shm
none            100M     0  100M   0% /run/user

删除日志后,磁盘空间使用量几乎增加了。11 %我不明白这里出了什么问题。以下是删除日志后的磁盘使用情况。

$ df -kh
Filesystem      Size  Used Avail Use% Mounted on
udev             15G   12K   15G   1% /dev
tmpfs           3.0G  504K  3.0G   1% /run
/dev/xvda1       48G   40G  5.6G  88% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             15G     0   15G   0% /run/shm
none            100M     0  100M   0% /run/user

任何专家建议都会很有帮助。谢谢

以下是输出ls -alht /var/log/nginx/

total 19G
-rw-r--r--  1 root     root   5.5G Jan  5 23:07 example-afew.access.log.1
-rw-r--r--  1 root     root   951M Jan  5 23:07 example-accountant.access.log.1
-rw-r--r--  1 root     root   1.2G Jan  5 23:07 example-outlet.access.log.1
-rw-r--r--  1 root     root   2.1G Jan  5 23:07 example-folks.access.log.1
-rw-r--r--  1 root     root   1.9G Jan  5 23:07 example-api_clients.access.log.1
-rw-r--r--  1 root     root   1.4G Jan  5 23:07 example-registry.access.log.1
-rw-r--r--  1 root     root    19M Jan  5 23:07 example-services.access.log.1
-rw-r--r--  1 root     root    54M Jan  5 23:07 example-postman-jack.access.log.1
-rw-r--r--  1 root     root   123M Jan  5 23:07 example-referrific.access.log.1
-rw-r--r--  1 root     root   167M Jan  5 23:07 example-creds.access.log.1
-rw-r--r--  1 root     root    34M Jan  5 23:06 example-blog-service.access.log.1
-rw-r--r--  1 root     root   140M Jan  5 23:06 example-help-service.access.log.1
-rw-r--r--  1 root     root    28M Jan  5 23:04 example-mqttproxy.access.log.1
-rw-r--r--  1 root     root    25M Jan  5 23:02 example-push-notifications.access.log.1
-rw-r--r--  1 root     root    12M Jan  5 22:58 example-network-coverage.access.log.1
-rw-r--r--  1 root     root   2.4M Jan  5 22:53 example-dcl_shipments.access.log.1
drwxr-xr-x  2 www-data adm    4.0K Jan  5 21:51 .
-rw-r--r--  1 root     root   5.1G Jan  5 20:13 example-subs.access.log.1
-rw-r--r--  1 root     root   9.5M Jan  5 15:16 example-screw.access.log.1
drwxrwxr-x 12 root     syslog 4.0K Jan  5 06:39 ..
-rw-r--r--  1 root     root   149K Jan  4 08:30 example-nobono.access.log.1
-rw-r-----  1 www-data adm       0 Dec 23 06:49 error.log
-rw-r-----  1 www-data adm    2.1K Dec 22 20:38 error.log.1
-rw-r-----  1 www-data adm     132 Dec 21 16:30 error.log.2.gz
-rw-r-----  1 www-data adm     155 Dec 20 14:47 error.log.3.gz
-rw-r-----  1 www-data adm       0 Jul 20 06:44 example-afew.error.log
-rw-r--r--  1 root     root   8.3K Jul 19 18:20 example-afew.error.log.1
-rw-r-----  1 www-data adm       0 Jun 24  2016 example-outlet.error.log
-rw-r--r--  1 root     root    14K Jun 23  2016 example-outlet.error.log.1
-rw-r--r--  1 root     root      0 Jun 21  2016 example-premium.access.log
-rw-r--r--  1 root     root      0 Jun 21  2016 example-premium.error.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-push-notifications.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-referrific.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-services.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-outlet.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-subs.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-afew.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-api_clients.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-blog-service.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-screw.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-nobono.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-accountant.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-dcl_shipments.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-registry.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-help-service.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-creds.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-mqttproxy.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-network-coverage.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-folks.access.log
-rw-r-----  1 www-data adm       0 Jun 19  2016 example-postman-jack.access.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-api_clients.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-blog-service.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-screw.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-nobono.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-accountant.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-dcl_shipments.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-registry.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-help-service.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-creds.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-mqttproxy.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-network-coverage.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-courier.access.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-courier.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-folks.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-postman-jack.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-push-notifications.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-referrific.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-services.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 example-subs.error.log
-rw-r--r--  1 root     root      0 Jun 17  2016 access.log

答案1

Vim 已将日志的剩余内容写入新的 inode。旧文件仍处于打开状态,其中包含服务记录的先前所有内容。

使用以下命令检查打开的已删除文件:

lsof | grep deleted

要清理磁盘空间,您必须关闭已删除的文件,例如通过重新启动服务。

下次像 logrotate copytruncate 那样操作:复制您想要保留的内容并截断旧文件。

相关内容