No space left on device

深藏阁楼爱情的钟 2022-08-14 02:40 228阅读 0赞



No space left on device

2011-10-12 15:30:58| 分类: 运维知识 | 标签:|举报 |字号大中小 订阅

一:

设置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,导致无法创建新的文件或目录,以后遇到类似的问题要注意

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

################################################################################

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

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

发表评论

表情:
评论列表 (有 0 条评论,228人围观)

还没有评论,来说两句吧...

相关阅读

    相关 No space left on device

    真的是气死我了 我都不知道为什么我/var/lib下有那么多东西 我什么都没干就各种下载安装而已 解决办法: 使用命令df -h 查看硬盘空间  du -sh /\ 查

    相关 No space left on device

    [为什么80%的码农都做不了架构师?>>> ][80_]  ![hot3.png][] 一. 收到报警 线上有一台服务器磁盘检测告警了,提示空间不足。爬到服务器查看相关信息: