No space left on device

今天想要设置crontab时出现,No space left on device,后来查了下,才知道是因为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# mkdir aamkdir: 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 writtencrontab: installing new crontabcron/tmp.6655: No space left on devicecrontab: edits left in /tmp/crontab.6655处理步骤:1 检查分区使用率# 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/aa3 发现删除/var/lock下的任意一个文件后#touch /var/aa -------------------成功# touch aa1 -------------------失败 touch: creatingaa1’: No space left on device4 将检查扩大到/var下的其他目录,

cd /var/www/icons

mv a.gif /tmp

mv a.png /tmp -------------------移走两个文件

df -li

touch aa

touch bb

touch cc

touch: creating `cc’: No space left on device -----------只能创建两个文件,当创建第三个文件时,出错5 怀疑分区/var的inode用尽导致上述问题,检查inode使用率# 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为06 分区/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使用情况

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 lockdf -h 一下发现不是磁盘空间的问题,google了一下发现是系统的Semaphore Arrays不够用了,用以下命令可以查看所有的Semaphore Arrays:ipcs -s 然后用这行命令删除所有的Semaphore Arrays即可:ipcs -s | grep nobody | perl -lane 'print ipcrm sem $F’ (其中nobody表示用户名)