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

相关推荐