Linux提示空间已满,找不到大文件

2023-05-16

当我们发现磁盘快满了,然后删除某些服务的日志文件,删除后发现磁盘空间仍然被占用,但我们使用“du –sh /*” 命令,发现目录下没有大文件,这时我们应该考虑,删除日志文件时,只是将所有的硬链接给删除了,但还有服务或程序占用,所以实际数据我们无法查看,但它仍然占用磁盘空间。这时可以重启服务,将占用日志文件的服务或进程重启,就可以释放占用的磁盘空间。

模拟案例:

1. 首先创建一个小空间的模拟磁盘分区:

[root@test ~]# dd if=/dev/zero of=/dev/test bs=1k count=512
记录了512+0 的读入
记录了512+0 的写出
524288字节(524 kB)已复制,0.00172664 秒,304 MB/秒
[root@test ~]# ll /dev/oldboy
-rw-r--r-- 1 root root 524288 1018 03:37 /dev/oldboy

2. 格式化磁盘

[root@test ~]# mkfs.ext4 /dev/test
mke2fs 1.41.12 (17-May-2010)
/dev/test is not a block special device.
无论如何也要继续? (y,n) y
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
64 inodes, 512 blocks
25 blocks (4.88%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=524288
1 block group
8192 blocks per group, 8192 fragments per group
64 inodes per group
 
正在写入inode表: 完成                            
 
文件系统小得无法记录日志
Writing superblocks and filesystem accounting information: 完成
 
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

3. 安装一个httpd服务

[root@test ~]# yum install httpd –y
# 将新建的虚拟分区挂载到httpd存放日志的目录下/etc/httpd/logs/
[root@test ~]# mount -o loop /dev/oldboy /etc/httpd/logs/
[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.5G  7.0G  18% /
tmpfs           244M     0  244M   0% /dev/shm
/dev/sda1       190M   36M  145M  20% /boot
/dev/sr0        3.7G  3.7G     0 100% /mnt
/dev/test     499K   15K  459K   4% /var/log/httpd
# 打开httpd服务的记录日志功能,将513行注释去掉即可。
[root@test ~]# vi /etc/httpd/conf/httpd.conf
*****************************************
513 #CustomLog logs/access_log common
# 开启httpd服务
[root@test ~]# /etc/init.d/httpd start
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for oldboy
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                        [确定]

在浏览器上输入虚拟机IP地址,可以访问模拟网页服务,跟踪httpd记录日志文件。

[root@test ~]# tail -f /etc/httpd/logs/access_log
# 刷新页面或者直接在文件里写入内容,使存放日志的分区使用量到100%,可以循环写入内容,使设备没有空间。
[root@test ~]# for n in `seq 10000`;do echo "liangkai">>/etc/httpd/logs/access_log ;done
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间
-bash: echo: write error: 设备上没有空间

4. 查看空间已满,删除日志文件后,发现磁盘空间仍是满的

[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.5G  7.0G  18% /
tmpfs           244M     0  244M   0% /dev/shm
/dev/sda1       190M   36M  145M  20% /boot
/dev/sr0        3.7G  3.7G     0 100% /mnt
/dev/test     499K  489K     0 100% /var/log/httpd
[root@test ~]# \rm -f /etc/httpd/logs/access_log
[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.5G  7.0G  18% /
tmpfs           244M     0  244M   0% /dev/shm
/dev/sda1       190M   36M  145M  20% /boot
/dev/sr0        3.7G  3.7G     0 100% /mnt
/dev/test     499K  489K     0 100% /var/log/httpd

5. 使用lsof 命令查看进程正在使用的已删除文件,发现有很多

[root@test ~]# lsof |grep deleted
httpd     2008   root    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2008   root    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2013 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2013 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2014 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2014 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2015 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2015 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2016 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2016 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2017 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2017 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2018 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2018 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2019 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2019 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2020 apache    7w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)
httpd     2020 apache    8w      REG                7,0   420862         13 /var/log/httpd/access_log (deleted)

6. 重启httpd服务,磁盘空间恢复正常。

[root@test ~]# /etc/init.d/httpd  restart
停止 httpd:                                              [确定]
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for oldboy
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                          [确定]
[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.5G  7.0G  18% /
tmpfs           244M     0  244M   0% /dev/shm
/dev/sda1       190M   36M  145M  20% /boot
/dev/sr0        3.7G  3.7G     0 100% /mnt
/dev/test     499K   78K  396K  17% /var/log/httpd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux提示空间已满,找不到大文件 的相关文章

  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 为什么无论 -rdynamic 如何,backtrace 都不包含 Objective-C 符号?

    Update 我正在 Linux 上使用 GNU 运行时 问题是not发生在带有 Apple 运行时的 MacOS 上 更新2 我在 MacOS 上编译了 GNU 运行时并用它构建了示例 该错误确实not发生在带有 GNU 运行时的 Mac
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf

随机推荐

  • 用sphinx写文档

    1 Sphinx简介 Sphinx是一个开源的文档工具 最开始被设计用于创建新的Python文档 xff0c 后来被广泛应用与Python项目 xff0c 现在对C xff0f C 43 43 的支持也已经相当不错 并且正在逐步增加对更多其
  • 一些常用的刷题网站

    PythonTip PythonTip 挑战Python http www pythontip com coding code oj HackerRank 还不错 xff0c 但是没有代码提示 xff0c 没有代码提示是小事 xff0c 可
  • 麻将胡牌逻辑 java

    最近写了一个麻将的胡牌逻辑 xff0c 这个麻将是没有万字牌 和 东西南北风牌 xff0c 以前也写过麻将胡牌逻辑 xff0c 都没有记录 xff0c 这次记录一下 xff0c 方便以后查阅 胡牌 64 param isZiMo 是否自摸
  • ucos 学习书籍

    ucos学习书籍整理记录 xff1a 入门看一本 xff0c 加上实例不用一周就上手了 嵌入式实时操作系统uc os 2 是邵贝贝翻译的 理解与提升 xff0c 应用提高 xff1a 嵌入式实时操作系统uc os 2原理及应用 任哲 嵌入式
  • SEO作外链9个没有套路完全免费收录的分类目录网站

    分类目录是指通过人工的方式收集网站资源 xff0c 并把这些拥有一定价值的网站资源通过人工的方式对他们的主题进行整理组织之后 xff0c 存放到相应的目录下面 xff0c 从而形成的网站分类目录的体系 搜索引擎非常重视高质量分类目录这样的外
  • 12个(发外链)完全免费、免费收录没有套路的分类目录网站

    广大网民肯定疑惑什么是分类目录网站呢 xff1f 分类目录网站是指 xff1a 把所有网站人工或系统类别进行分开 xff0c 分开到各个相应的目录下 分类目录也可以这样的理解为是指通过人工的方式收集各行业网站资源 xff0c 并把这些拥有一
  • linux系统进程间通信方式(二):消息队列

    简介 本文章继续介绍linux进程间通信的方式 xff1a 消息队列 消息队列也是system V的IPC对象 xff0c 它也是存在于内核中 xff0c 有自己的ID xff1b 并且通过一个唯一的key来绑定它 linux提供了一些ap
  • linux学习shell脚本或命令时“ >/dev/null 2>&1 “相关知识说明

    在学习Linux的过程中 常会看到一些终端命令或者程序中有 34 gt dev null 2 gt amp 1 34 出现 由于已经遇到了好几次了 为了理解清楚 不妨花点时间百度或者google一下相关的知识 0 表示键盘输入 stdin
  • linux--journalctl 日志查看方法

    1 概述 日志管理工具journalctl是centos7上专有的日志管理工具 xff0c 该工具是从message这个文件里读取信息 Systemd统一管理所有Unit的启动日志 带来的好处就是 xff0c 可以只用journalctl一
  • 使用putty软件通过SSH方式登录华为设备时出现“Signature from server‘s host key is invalid”错误的解决方法

    问题现象 使用putty软件 xff08 0 71及之后的版本 xff09 通过SSH方式登录时可能会出现 Signature from server s host key is invalid 错误提示 xff1a 解决方法 方法1 xf
  • diy 企业级路由器(route os )

    Mikrotik Router Os 来自拉托维亚 xff0c 一个不起眼的欧洲小国家 xff0c 但是它的功能却是很强大 今天我就用口碑比较好的 ROS2 9 6 版进行讲解了 主要功能 xff1a IP 路由 支持无线热区 PPPoE
  • 双系统Ubuntu 18.04 + ROS Melodic + openvins +VINS-mono + Realsense L515 环境配置

    Ubuntu 18 04 准备工作 电脑图标右键 管理 磁盘管理 xff0c 选择空闲空间的D或E盘右键 压缩卷 压缩102400 xff08 100G xff09 下载ubuntu 18 04 6 desktop amd64 iso ht
  • C++语法复习笔记-9.C++STl、Boost库、多线程编程(进行中)

    文章目录 1 STL1 概览2 容器2 1 序列式容器vector list deque初始化遍历 for each函数 2 2 适配器stack queue priority queue初始化访问方式 2 3 关联型容器map set插入
  • SSD与HDD如何混合组raid并永久挂载硬盘?

    前言 xff1a 服务器上同时装有SSD和HDD硬盘 xff0c 如果想把系统装在SSD上 xff0c HDD用来存数据 xff0c 那么服务器应该如何组raid xff1f 又如何设置HDD硬盘永久挂载 xff1f 下面将以装有1个SSD
  • Golang 报错 | 操作mysql提示busy buffer

    背景说明 在使用github com go sql driver mysql 驱动操作数据库 xff0c 获取信息时报错 代码块 span class token keyword func span span class token fun
  • Python | 打印进度条的三种方法

    不使用模块 xff0c 手动打印进度条 span class token keyword def span span class token function Run span span class token punctuation sp
  • Nginx配置禁止IP访问

    时间背景 使用Nginx代理服务 xff0c 请求先到前端的代理服务器 xff0c 然后由代理服务器的nginx转发请求到后端的服务器 开始默认没有对IP访问做限制 xff0c 现在要求禁止IP访问 xff0c 大概是一个这样的架构 xff
  • git如何使用tag

    简介 我们可以创建一个tag来指向软件开发中的一个关键时期 xff0c 比如版本号更新的时候可以建一个 v2 0 v3 1 之类的标签 xff0c 这样在以后回顾的时候会比较方便 tag的使用很简单 xff0c 主要操作有 xff1a 查看
  • linux服务器最大支持连接数

    当我们被问到一台linux服务器最多可以支持多少连接时 xff0c 很多人第一反应是65535个 xff0c 因为端口是65535个 xff0c 还有人说受到TCP连接里四元组的空间大小限制 xff0c 那么到底是多少 xff1f 首先解释
  • Linux提示空间已满,找不到大文件

    当我们发现磁盘快满了 xff0c 然后删除某些服务的日志文件 xff0c 删除后发现磁盘空间仍然被占用 xff0c 但我们使用 du sh 命令 xff0c 发现目录下没有大文件 xff0c 这时我们应该考虑 xff0c 删除日志文件时 x