> Linux教程 > Linux学习 >

Linux磁盘空间不足之inode

# crontab -e
编辑好之后保存
crontab: installing new crontab
cron/tmp.xxx1222: No space left on device
crontab: edits left in /tmp/crontab.xxx1222
报错是表示磁盘满了

# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda1              29G  24G  3.4G  88% /
/dev/sda5              94G  406M  89G  1% /date
tmpfs                467M    0  467M  0% /dev/shm
/dev/sda2              19G  2.5G  16G  14% /home
也还好, 磁盘空间还有很大的剩余, 后来想了一下, 这个不一定是磁盘满了, 也可能是inode用完了

# df -i

文件系统              Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda1            7685440  7684646    794  99%    /
/dev/sda5            25427968  10569 25417399    1% /date
tmpfs                119383      1  119382    1% /dev/shm
/dev/sda2            5124480    4244 5120236    1% /home
 
真的是inode用完了,磁盘没法再写入新的内容了,这个是某些临时的小文件太多了,把inode用完了,把它删掉就行了。
最有可能的是那个目录呢?? 呵呵,想都不用想了

# find /var/spool/clientmqueue -type f -print -exec rm -f {} \;
 
这个命令中 /var/spool/clientmqueue 是要删除的文件所在的目录 -type f这个参数限定find只查找普通文件(即不是管道文件,不是块文件,不是链接文件,不是目录等),防止误删除系统文件。

原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;


解决办法:
将crontab里面的命令后面加上  > /dev/null 2>&1
  或者
  crontab里面的命令后面加上  > /dev/null



(责任编辑:IT)