首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux中出现“No space left on device”错误的排查与解决方法

之前遇到过一次这种问题,是由于磁盘空间被占满了,导致无法创建新文件。正常情况下,删除一些文件来释放空间,即可解决该问题。...如果真是如此,那么即使磁盘空间有剩余,但由于无法创建新的 inode 来存储文件的元信息,也就无法创建新文件。...于是我通过 lsop 命令查看了被进程占用的文件: # lsof | grep deleted mysqld 1952 2982 mysql 5u REG 254,1 0 127 /tmp/ibzMEe4z...脚本,源源不断地将输出保存到 /var/log/nohup.out 文件,文件大小居然达到了20G+!...前阶段在后台运行脚本之后,就没再管过它。估计是我 Python 运行过程删掉了 nothup.out 文件,由于该文件被占用,所以只能先标记为 deleted,而未真正删除,最后导致磁盘爆满。

59.6K31
您找到你想要的搜索结果了吗?
是的
没有找到

6 个 Linux 运维典型问题,大牛的分析解决思路在这里

解决思路: 既然错误提示语磁盘空间有关,那就深入研究关于磁盘空间的问题, linux 系统对磁盘空间占用分为三个部分:第一个是物理磁盘空间,第二个是 inode 节点所占用的磁盘空间,第三个是 linux...目录下,然后定期清除 / tmp 目录下的数据。...这个策略本身没有什么问题,但是通过检查发现这台服务器的系统分区并没有单独划分 / tmp 分区,这样 / tmp 下的数据其实占用根分区的空间,既然找到了问题,那么删除 / tmp 目录下一些占用空间较大的数据文件即可...一个文件文件系统存放分为两个部分:数据部分和指针部分,指针位于文件系统的 meta-data 将数据删除后,这个指针就从 meta-data 清除了,而数据部分存储磁盘。...将数据对应的指针从 meta-data 清除后,文件数据部分占用空间就可以被覆盖并写入新的内容,之所以出现删除 access_log 文件后,空间还没有释放,就是因为 httpd 进程还在一直向这个文件写入内容

1.2K20

6 个 Linux 运维典型问题,大牛的分析解决思路在这里

解决思路: 既然错误提示语磁盘空间有关,那就深入研究关于磁盘空间的问题, linux 系统对磁盘空间占用分为三个部分:第一个是物理磁盘空间,第二个是 inode 节点所占用的磁盘空间,第三个是 linux...tmp 目录下,然后定期清除 / tmp 目录下的数据。...这个策略本身没有什么问题,但是通过检查发现这台服务器的系统分区并没有单独划分 / tmp 分区,这样 / tmp 下的数据其实占用根分区的空间,既然找到了问题,那么删除 / tmp 目录下一些占用空间较大的数据文件即可...一个文件文件系统存放分为两个部分:数据部分和指针部分,指针位于文件系统的 meta-data 将数据删除后,这个指针就从 meta-data 清除了,而数据部分存储磁盘。...将数据对应的指针从 meta-data 清除后,文件数据部分占用空间就可以被覆盖并写入新的内容,之所以出现删除 access_log 文件后,空间还没有释放,就是因为 httpd 进程还在一直向这个文件写入内容

1.7K110

基础拾遗--【转】df与du不一致情况分析

一、实验情况 1、创建并删除文件 创建文件前的磁盘容量情况: 引用 # df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda1.../test.iso 2、删除该文件 打开另一个终端,登陆到系统。...y # ls /tmp/test.iso ls: /tmp/test.iso: 没有那个文件或目录 查看是否还有进程使用(注意结尾的标记): 引用 # lsof |grep test.iso tail...二、说明 从上面的实验,可得出一些情况: 引用 1、若有进程占用某个文件,而其他进程把这文件删掉,只会删除其磁盘的标记,而不会释放其占用的磁盘空间;直到所有访问该文件的进程退出为止; 2、df 是从内核获取磁盘占用情况数据的...三、解决问题 通常的解决方法有两个: 1、把占用文件的相关进程关闭 这可通过下面的命令得到这些已被删除,但未释放空间的文件和进程信息: # lsof |grep deleted 找到这些进程后,安全的情况下把其关闭

81570

从 lsof 开始,深入理解 Linux 虚拟文件系统

作者:cyningsun 链接:https://juejin.im/post/6875110082724659213 背景 有时会出现这样的情况,磁盘空间显示已经被占满,但是查看磁盘的具体文件占用情况时...执行du命令查看各个目录的磁盘占用情况,把各个目录文件的大小相加,发现并没有占满磁盘,有10多G空间莫名失踪。...内核代码映像文件保存在根文件系统,而系统引导启动程序会在根文件系统挂载之后,从中把一些基本的初始化脚本和服务等加载到内存中去运行(文件系统和内核是完全独立的两个部分)。...其他文件系统,则后续通过脚本或命令作为子文件系统安装在已安装文件系统目录上,最终形成整个目录树。...,创建超级块对象;沿树查找文件时,总是首先从初识目录查找匹配的目录项,以便获取相应的索引节点,然后读取索引节点的目录文件,转化为dentry对象,再检查匹配的目录项,反复执行以上过程,直至找到对应的文件的索引节点

1.3K40

shell变量详解

给你使用 同时在内存跟踪表记录 该地址被占用不在分给别人,同时系统建立映射机制 比如:变量名 STRING1=‘ABC’ name0x5 d、释放内存 从内存跟踪表中将记录删除...,下次存数据直接覆盖 图片 CHAR1(0x3)=A 从图片可以看出,当我们脚本定义变量存值的时候,可以从以下方面看到变化: a、内存占用:如果存的是一个字符则占用1个字节,如果存的是字符串则是字符串的长度加...在这个shell,可以使用shell命令或声明变量,也可以 创建并运行 shell脚本程序。 运行脚本时: 2) 运行shell脚本程序时,系统创建一个子shell。...此时,系统中将有两个shell,一个是登录时系统启动的shell, 另一个是系统为运行脚本程序创建的shell。...export命令将使系统创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

52520

从 lsof 开始,深入理解Linux虚拟文件系统

背景 有时会出现这样的情况,磁盘空间显示已经被占满,但是查看磁盘的具体文件占用情况时,发现磁盘仍然有很大的空余空间。 1.执行df命令查看磁盘使用情况,发现磁盘已经满了。...因为虽然文件已被删除,但是一些进程仍然打开这些文件,因此其占用的磁盘空间并没有被释放。执行lsof 命令显示打开已删除的文件。将有问题的进程重启(或,清空),磁盘空间就会得到释放。...内核代码映像文件保存在根文件系统,而系统引导启动程序会在根文件系统挂载之后,从中把一些基本的初始化脚本和服务等加载到内存中去运行(文件系统和内核是完全独立的两个部分)。...其他文件系统,则后续通过脚本或命令作为子文件系统安装在已安装文件系统目录上,最终形成整个目录树。...,创建超级块对象;沿树查找文件时,总是首先从初识目录查找匹配的目录项,以便获取相应的索引节点,然后读取索引节点的目录文件,转化为dentry对象,再检查匹配的目录项,反复执行以上过程,直至找到对应的文件的索引节点

38910

请收藏 | Linux运维常见故障及处理的 32 个锦囊妙计

2.crontab输出结果控制 问题: /var/spool/clientmqueue目录占用空间超过100G 原因: cron执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail...问题: tmp目录下有大量包含picture_*的临时文件,每天晚上2:30对一天前的文件进行清理。...:表面看是7080端口被占用,于是netstat-npl|grep7080看了下发现7080没有占用; 2)配置文件重复写了端口,如果在以下两个文件同时写了Listen7080 /etc/httpd...对于共享表空间管理的方式下,一旦表空间被分配,就不能再回缩了。当出现临时建索引或是创建一个临时表的操作表空间扩大后,就是删除相关的表也没办法回缩那部分空间了。...②独立表空间配置文件(my.cnf)设置:innodb_file_per_table 特点: 每个表都有自已独立的表空间;每个表的数据和索引都会存在自已的表空间中。

1.2K30

Linux运维70道经典笔试题 需要的拿走

1.1 基础篇 1)创建目录/data/oldboy ,并且目录创建文件oldboy.txt.然后文件oldboy.txt里写入内容“ [root@xbyqxit /]# mkdir -p /data...dd C du D fdisk dd 是vim下删除当前行的快捷键 du是显示文件占用空间 fdisk是硬盘分区的 26) 显示系统主机名的命令是( ) A uname -r B who am I C...33) Linux文件系统每个文件用( inode )来标识 34) Linux系统,用来存放系统所需要的配置文件和子目录目录是(/etc ) 35)将前一个命令的标准输出作为后一个命令的标准输入...Ctrl+d 退出当前用户 返回 40) Linux系统查看ip地址的命令是( ) A ipconfig B ifconfig C icmp D iptables 41) Linux系统,用来存放系统所需要的配置文件和子目录是...tmp]# 1.2 提高篇 64)( )命令是vi编辑器执行存盘退出。

2.5K20

Linux文件属性详解

目录设置set Gid权限,任何用户目录创建的文件,文件的属组都和目录的属组一致。...1.3.5 粘滞位权限(待补充) 1.4 链接 1.4.1 硬链接 一般情况下,文件名和inode号码是“一一对应”的关系,同一个分区内不可能同时出现两个inode号相同的文件,但是Linux系统存在一个...4) 当所有的硬链接和源文件被删除,没有进程调用后,存放新的数据会占用这个文件的空间或者磁盘fsck检查的时候,删除的数据才会被回收, 5) 可以通过文件设置硬链接文件,来防止重要文件被误删除 6...-0500 1.6 系统创建文件提示:no space left on device磁盘空间不足 Linux系统中提示这个可能三种原因: 1)block块被占满 2)inode块被占满 3)文件全部都删除了.../tmp/test_block #给这个分区创建文件系统 [root@oldboy_50 ~]# mkfs.ext4 /tmp/test_block mke2fs 1.41.12 (17-

3.1K21

出了Linux 故障找不到方法?看大牛简单、朴实的解决思路

解决思路: 既然错误提示语磁盘空间有关,那就深入研究关于磁盘空间的问题,linux系统对磁盘空间占用分为三个部分:第一个是物理磁盘空间,第二个是inode节点所占用的磁盘空间,第三个是linux用来存放信号量的空间...tmp目录下,然后定期清除/tmp目录下的数据。...这个策略本身没有什么问题,但是通过检查发现这台服务器的系统分区并没有单独划分/tmp分区,这样/tmp下的数据其实占用根分区的空间,既然找到了问题,那么删除/tmp目录下一些占用空间较大的数据文件即可...一个文件文件系统存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data将数据删除后,这个指针就从meta-data清除了,而数据部分存储磁盘。...,于是赶紧查看系统系统所有磁盘分区,结果发现所有磁盘分区都还有很多可用空间,这就奇怪了,在前面的案例介绍,详细介绍了linux对磁盘空间占用分为三个部分:物理磁盘、inode节点磁盘空间和信号量磁盘空间

2.3K70

Linux运维常见故障排查和处理的33个技巧汇总

2.crontab输出结果控制 问题: /var/spool/clientmqueue目录占用空间超过100G 原因: cron执行的程序有输出内容,输出内容会以邮件形式发给...文件提升性能 问题: tmp目录下有大量包含picture_*的临时文件,每天晚上2:30对一天前的文件进行清理。...:表面看是7080端口被占用,于是netstat-npl|grep7080看了下发现7080没有占用; 2)配置文件重复写了端口,如果在以下两个文件同时写了Listen7080 /etc...,找不到硬盘,并无法进入下一步安装 进入COMS设置,找到硬盘设置的相关选项,并设置为兼容模式 2 Linux系统安装时,硬盘分区完成后,无法继续安装 硬盘分区不符合安装要求,你可能忘记创建根分区或swap...VLAN后,不能访问外网 VLAN的网关未设置或设置不正确 8 配置DNS服务,named服务无法启动 造成问题可能性:(1)/etc/named目录下缺少必要文件(2)/var/named目录下缺少必要文件

3.3K60

运维常见的22个故障排查和10个问题解决技巧大汇总!

2.crontab输出结果控制 问题: /var/spool/clientmqueue目录占用空间超过100G 原因: cron执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail...: tmp目录下有大量包含picture_*的临时文件,每天晚上2:30对一天前的文件进行清理。...之前crontab下跑如下脚本,但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务。 !...:表面看是7080端口被占用,于是netstat-npl|grep7080看了下发现7080没有占用; 2)配置文件重复写了端口,如果在以下两个文件同时写了Listen7080 /etc/httpd...答: 进入COMS设置,找到硬盘设置的相关选项,并设置为兼容模式 2、Linux系统安装时,硬盘分区完成后,无法继续安装 答: 硬盘分区不符合安装要求,你可能忘记创建根分区或swap交换分区了,这一点与

5K21

MySQL存储文件组成和常见相关问题

临时文件: 当使用临时表或者查询的中间结果超过了tmp_table_size时,会在磁盘上创建临时文件避免占用过多内存,默认为/var/tmp,可通过修改数据库启动参数--tmpdir或者修改配置文件移动到其他位置...关于MySQL存储空间的常见问题 1. 为什么用SQL查询出来的文件大小和整个数据库存储占用空间有差异?...整个数据库存储占用空间除了业务库目录文件大小外,还需要加上binlog、error log、redo log和系统自带库表和innodb共享表空间占用大小。...场景2:执行查询SQL时,根据生成的执行计划(explain查看),mysql会自动创建内部临时表....(驱动表) - 使用了sql_small_result选项 - 含有distinct的order by语句 相关参数: - tmp_table_size - sort_buffer_size 如果你发现数据库占用的存储空间出现突然性的上涨下跌

1.6K30

Linux中常见问题(磁盘 定时任务)

>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。...>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。...4.6 创建和删除大量小文件的方法 4.6.1 删除小文件的方法 1)大量的小文件 [root@znix tmp]# ls |xargs rm 2)删除文件所在的目录 (权限、所有者、属组) 3)临时开启邮件服务...(只对/var/spool/postfix/maildrop 这个目录下的小文件) 4.6.2 创建小文件的方法 [root@znix tmp]# echo {1..400000}|xargs touch...|xargs 后面的命令会任务传递过来的是文件 4.8 定时任务的位置 1.在用户的定时任务,默认存放在当前用户的家目录下 2.系统的定时任务存放在根下 第5章 练习题--定时任务 5.1 定时任务的环境变量

83200

如何从看不懂Dockerfile到创建自己的镜像

我需要Docker做什么 通俗的讲,它和虚拟机的作用类似,实现与宿主机资源和系统环境的隔离。但Docker容器技术相比虚拟机具有许多优点,比如:启动速度快、占用内核资源少、轻便以及可移植性等。...新药研发,CFDA规定十年后对相关实验数据进行溯源性分析,依然是准确和一致的。...按照开发和运维(DevOps)人员说法,就是一次创建或配置可以永久不同平台运行。...创建images并修改名称 docker build . 因为Dockerfile在当前工作目录下,所以用“ . ”代替了绝对路径。 ?...,其启动容器时执行echo命令,然而奇怪的事情发生了,启动容器后确实输出了"Hello,World!"却没进入容器,就好像没被开启。如下图: ?

2.7K20

用户与磁盘

1.3.4 特点        1)系统创建一个非空的文件占用一个inode和至少一个block        2)同一个分区(文件系统),如果两个文件的inode号码相同这两个文件互为硬链接...       3)inode大小 256字节 (再centos6.x系统),分区小于500M时为128字节 1.4 block 1.4.1 怎么来的 格式化创建文件系统与inode一起产生 1.4.2...要占用一个inode和至少一个block 2、文件大小 占用一个block 剩余空间不能使用 第2章 企业案例(磁盘空间不足) 如果向磁盘写入数据提示如下错误:No space left on device...情况1 --常见 block 实际的存储空间使用完 使用df -h 查看使用率到100% 解决: 找到系统的大文件,确认无用后删除,释放磁盘空间 情况2 ---inode用光了 使用df -i...      directory l   软连接    soft link 3.2 扩展名 windows是区分不同的文件类型的 linux有没有扩展名都可以都行,给人类看的,为了让使用者能够区分不同文件

1K00

Linux笔记3

什么是命令 命令可以是下面四种形式之一: 是一个可执行程序,就像我们所看到的位于目录/usr/bin 的文件一样。...属于这一类的程序,可以编译成二进制文件,诸如用 C 和 C++语言写成的程序, 也可以是由脚本语言写成的程序,比如说 shell,perl,python,ruby......这些是小规模的 shell 脚本,它们混合到环境变量。 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。 ?...[me@linuxbox ~]$ 一行上联合了三个命令: 首先更改目录到/usr,然后列出目录内容,最后回到原始目录(用命令”cd ~”),结束开始的地方。...创建命令别名: [me@linuxbox ~]$ alias foo='cd /usr; ls; cd -' 注意命令结构: alias name='string' 命令”alias”之后,输入

60530

Linux服务器运维常用的操作命令有哪些?

,-s软链接,软链接相当于Windows系统的快捷方式,硬链接相当于cp -p,文件复制且同步更新 ln -s /etc/issue /tmp/issue.soft 创建文件/etc/issue的软链接...资料库查找,速度非常快。...df -hl 查看磁盘占用情况 du -sh 当前目录占用磁盘空间大小,不包括子目录目录下的文件, -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小 du -h filename...    指定文件占用的磁盘空间大小 du -ah --max-depth=1 查看某目录下全部文件及文件夹的磁盘占用大小和目录占用空间大小,-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小...;-h:以人类可读的方式显示;不加--max-depth=1会把所有下下级等目录占用空间都列出来 du -h * 查看当前目录及其子目录的磁盘占用情况 系统命令 top 性能分析,动态显示内存(MEM)

5.1K61
领券