本文转自

http://blog.163.com/ly_89/blog/static/186902299201191233058625/

=====================概述=====================

block 还有     inodes 满了     ====== 》 小文件太多  ======》 /var/spool/clientmqueue 小文件太多  =====》 cron 产生的

==========================解决思路=========================

..1 把小文件删除

..2 把产生小文件的源头干掉

一:

设置crontab 时提示No space left on device
用df -k 检查还有空间

用df -i  显示 /var 已占用100%,如果inode耗尽,则系统上将不能创建文件。

在/var/spoo/clientmqueue/下有超多的文件 ls 半天没反应
用rm -rf * 会自动跳出root,用xargs来解决。

# cd /var/spool/clientmqueue

# ls | xargs rm -f

原因分析:系统中cron执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
解决办法:  将crontab里面的命令后面加上> /dev/null 2>&1

二:

故障现象:

1 when you create a new directory or file , system will say : No space left on device

[shelladm@linux /var]# mkdir aa

mkdir: cannot create directory `aa': No space left on device

2 when create crontab for account shelladm , you will receive error information as follows:

"crontab.6655" 1L, 13C written

crontab: installing new crontab

cron/tmp.6655: No space left on device

crontab: edits left in /tmp/crontab.6655

处理步骤:

1 检查分区使用率

[root@linux ~]# df -lk
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2              3020172    136008   2730744   5% /
/dev/hda1               101089      9378     86492  10% /boot
/dev/hda7            105708092  38996880  61341488  39% /b2006
none                   1028548         0   1028548   0% /dev/shm
/dev/hda3              3020172   1421092   1445660  50% /usr
/dev/hda6               497829    371795    100332  79% /var
分区/var的使用率只有79%,系统有空间可以用

2 检查/var/lock下的文件,删除/var/lock/subsys/nfs后,touch /var/aa,成功创建文件,删除/var/aa

3 发现删除/var/lock下的任意一个文件后

[root@linux /var]#touch /var/aa        -------------------成功

[root@linux /var]# touch aa1                -------------------失败
touch: creating `aa1': No space left on device

4 将检查扩大到/var下的其他目录,
[root@linux icons]# cd /var/www/icons
[root@linux icons]# mv a.gif /tmp
[root@linux icons]# mv a.png /tmp     -------------------移走两个文件
[root@linux icons]# df -li
[root@linux icons]# touch aa
[root@linux icons]# touch bb
[root@linux icons]# touch cc
touch: creating `cc': No space left on device -----------只能创建两个文件,当创建第三个文件时,出错

5 怀疑分区/var的inode用尽导致上述问题,检查inode使用率

[root@linux icons]# df -li
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hda2             384000   23698  360302    7% /
/dev/hda1              26104      41   26063    1% /boot
/dev/hda7            13434880    7964 13426916    1% /b2006
none                  257137       1  257136    1% /dev/shm
/dev/hda3             384000   78026  305974   21% /usr
/dev/hda6             128520  128520       0  100% /var
发现/var的inode使用率已经达到100%,空余的inode为0

6 分区/var没有配置quota ,平均每个inode的占用空间为:497829k(var size)/128520(inodes)=3.87k,说明分区的最小block为4k,无法增加inode限额。

7 发现/var/spool/clientmqueue下面有太多的文件,共有127679个,占用了127679/128520(inodes)=99.3%的inode
  系统的邮件配置有问题,导致系统发出的邮件堆积在队列中,占用的大量的inode.

处理方法:确认/var/spool/clientmqueue下的文件已经无用后,删除之。然后/var写入正常。
          最好的解决办法是重新设置系统邮件,使其能正常发送。

删除文件后的inode使用情况
[root@linux clientmqueue]# df -li
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hda2             384000   23698  360302    7% /
/dev/hda1              26104      41   26063    1% /boot
/dev/hda7            13434880    7964 13426916    1% /b2006
none                  257137       1  257136    1% /dev/shm
/dev/hda3             384000   78026  305974   21% /usr
/dev/hda6             128520    4561  123959    4% /var

结论:分区/var的inode全部用尽,free inode为0,导致无法创建新的文件或目录,以后遇到类似的问题要注意

用df -li 检查inode的使用情况。
################################################################################

当启动apache的时候报这种错:

No space left on device: Couldn't create accept lock
df -h 一下发现不是磁盘空间的问题,google了一下发现是系统的Semaphore Arrays不够用了,用以下命令可以查看所有的
Semaphore Arrays:
ipcs -s  
然后用这行命令删除所有的Semaphore Arrays即可:
ipcs -s | grep nobody | perl -lane 'print `ipcrm sem $F[1]`'  (其中nobody表示用户名)

No space left on device(转载)的更多相关文章

  1. [转载]tail No space left on device

    转载http://www.chenxie.org/?p=717 # tail -f ../logs/catalina.outtail: cannot watch `../logs/catalina.o ...

  2. centos编译内核:no space left on device 解

    1.问题:在下面的根文件夹中的原始源代码 编译出现 no space left on device 利用df -h 命令查看 根文件夹空间占用完成 2.将源代码改在其它空间非常足的地方编译 在make ...

  3. Postgresql FATAL: could not create semaphores: No space left on device

    昨天安装完成pg 9.5后,启动报错: FATAL:  could not create semaphores: No space left on device DETAIL:  Failed sys ...

  4. gzip: stdout: No space left on device问题的解决

    一.问题描述 最近安装了ubuntu14.04,并在ubuntu14.04中编译了一次内核.这之后大部分情况下用sudo apt-get install 安装应用都会出现“gzip: stdout: ...

  5. 生产环境下案例 No space left on device (inode使用满的情况)

    第一种情况: 问题: 如果想磁盘写入数据提示如下错误: No space left on device. 通过df -h查看磁盘空间,发现没满,请问可能原因是什么? 解答: 可能是inode数量被消耗 ...

  6. No space left on device you must specify the filesystem type--Linux重启挂在失败

    在Linux中拷贝了一个文件比较大5G,直接提示:No SPace Left On Device,很明显是磁盘空间不够了,我因为是在虚拟机上面建的,直接右击虚拟机==>编辑设置 如图片1所示, ...

  7. No space left on device 解决Linux系统磁盘空间满的办法

    最近Linux电脑在执行mvn时候总是报错: No space left on device   原因是磁盘空间满了,我马上加了20G的硬盘容量,但是还是报错,上网查了一下,发现了解决方法,我用了其中 ...

  8. gcc 错误:Fatal error error writing to tmp No space left on device

    在使用gcc make时报错:Fatal error error writing to tmp No space left on device finiteVolume/ddtSchemes/Eule ...

  9. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

随机推荐

  1. CentOS7下MariaDB数据库安装及配置

    前言 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存 ...

  2. python面试的100题(11)

    21.Python-遍历列表时删除元素的正确做法 遍历在新在列表操作,删除时在原来的列表操作 a = [1,2,3,4,5,6,7,8] print(id(a)) print(id(a[:])) fo ...

  3. IDEAVIM 常用快捷键总结和使用说明

    ---title: ideavim常用快捷键总结和使用tags: grammar_cjkRuby: true--- #### `待办` ideavim用于编程的常用快捷键说明 常用快捷键 插入(光标前 ...

  4. Apache Kafka(一)- Kakfa 简介与术语

    Apache Kafka 1. Kafka简介.优势.以及使用场景 Kafka的优势: 开源 分布式,弹性架构,fault tolerant 水平扩展: 可以扩展到100个brokers 可以扩展到每 ...

  5. java_细节_windows7下记事本保存为utf-8格式的问题

    如果在win7下的记事本直接另存为utf-8格式,是带有dom的utf-8,所以处理的时候需要注意,因为第一个字符是"?",而且不可见

  6. Ztree使用教程

    这两天项目需要写一个树形帮助,学习了我们项目组的老师的Ztree的树的写法,实现了这个帮助,下面来总结一下Ztree的用法. (也是参考的一篇csdn上的博客了) zTree 是一个依靠 jQuery ...

  7. Java 动态代理实现

    1.依赖 java.lang.reflect.Proxy - 提供了静态方法去创建动态代理类的实例: Interface InvocationHandler - 一个代理实例调用处理程序实现的接口 2 ...

  8. java 面试架构篇

    1.非功能需求会考虑哪些? 可用性.扩展性.性能: 2.有没有遇到过建了索引反而变慢的情况? 3.从哪些角度去设计系统? 4.代码中使用过的设计模式?

  9. Laravel 虚拟开发环境 Homestead 密码

    默认数据库账号密码账号: homestead 密码:secret 默认 ssh 账号密码账号:vagrant 密码:vagrant创建默认 root 用户sudo passwd root

  10. git和github的关系以及简单易懂的理解

    git和github的关系   写在前面:我身边好多人问我git和github的区别,想必对于好多人没学过的大佬们恐怕也是一脸懵逼,但是不知道也是不行的,所以我今天就来讲一讲这二者的区别和联系. 用一 ...