服务器突然不好用了,查看了下状态,发现
df -i
里面的inode 100%了
然后用
find 目录名 |wc -l
来挨个目录的找
终于找到了在tmp目录下面,占用了大量的inodes
但是这个/tmp目录不能随便删呀,不然后tmp目录权限不对,登录不了系统(正确的权限为chmod 1777 /tmp)
所以只能用
==========下面是解决方法============================================
删除sess_字符的文件
rm -f *sess_* //这个命令执行不成功,会提示Argument list too long
Argument list too long时的解决办法
例:
1、rm * -rf 改为:
find . -name "*" | xargs rm -rf '*' 就行了。
2、rm test* -rf 改为:
find . -name "test*" | xargs rm -rf "test*"
1.可以使用通配符,比如显示当前文件夹下所有的 firefox的文件 ls -d firefox* 就可以了。不加-d 会把文件夹里的文件也显示出来。
2.这个命令的意思是:输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除,这样就不会超过命令行的长度了.
ls | xargs -n 10 rm -fr
上面两条指令组合起来就是
ls -d /tmp/sess_* | xargs -n 10 rm -fr
遍历寻找0字节的文件,并删除
find /tmp -type f -size 0 -exec rm {} \;
=============上面是解决方法==================================================
自己写了个crontab每天早晨3点删
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
* * * * * 这5个星,代表时间
分钟 (0-59)
小時(0-23)
日期(1-31)
月份(1-12)
星期(0-6) //0代表星期天
0 3 * * * ls -d /tmp/sess_* | xargs -n 10 rm -fr
后期得用
tmpwatch工具
放在crontab里定期清理
通过inode节点找到文件删除
ls -i
find -inum XXX |xargs -I {} rm {}
发现 sess_ 这个文件出现的非常非常多
在php.ini中的session.save_path = "/tmp"
改一下
df -i
里面的inode 100%了
然后用
find 目录名 |wc -l
来挨个目录的找
终于找到了在tmp目录下面,占用了大量的inodes
但是这个/tmp目录不能随便删呀,不然后tmp目录权限不对,登录不了系统(正确的权限为chmod 1777 /tmp)
所以只能用
==========下面是解决方法============================================
删除sess_字符的文件
rm -f *sess_* //这个命令执行不成功,会提示Argument list too long
Argument list too long时的解决办法
例:
1、rm * -rf 改为:
find . -name "*" | xargs rm -rf '*' 就行了。
2、rm test* -rf 改为:
find . -name "test*" | xargs rm -rf "test*"
1.可以使用通配符,比如显示当前文件夹下所有的 firefox的文件 ls -d firefox* 就可以了。不加-d 会把文件夹里的文件也显示出来。
2.这个命令的意思是:输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除,这样就不会超过命令行的长度了.
ls | xargs -n 10 rm -fr
上面两条指令组合起来就是
ls -d /tmp/sess_* | xargs -n 10 rm -fr
遍历寻找0字节的文件,并删除
find /tmp -type f -size 0 -exec rm {} \;
=============上面是解决方法==================================================
自己写了个crontab每天早晨3点删
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
* * * * * 这5个星,代表时间
分钟 (0-59)
小時(0-23)
日期(1-31)
月份(1-12)
星期(0-6) //0代表星期天
0 3 * * * ls -d /tmp/sess_* | xargs -n 10 rm -fr
后期得用
tmpwatch工具
放在crontab里定期清理
通过inode节点找到文件删除
ls -i
find -inum XXX |xargs -I {} rm {}
发现 sess_ 这个文件出现的非常非常多
在php.ini中的session.save_path = "/tmp"
改一下