我在运行某些命令时遇到问题,控制台显示:*
bash:无法为此处文档创建临时文件:设备上没有剩余空间
roo@Server: df -h
Filesystem Size Used Avail Use% Mounted on
udev 991M 4.0K 991M 1% /dev
tmpfs 201M 408K 200M 1% /run
/dev/disk/by-label/DOROOT 40G 20G 18G 54% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 1001M 0 1001M 0% /run/shm
none 100M 0 100M 0% /run/user
经过查找和验证,Inode 已经满了 100%:
root@Server: df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 253531 402 253129 1% /dev
tmpfs 256244 339 255905 1% /run
/dev/disk/by-label/DOROOT 2621440 2620484 956 100% /
none 256244 2 256242 1% /sys/fs/cgroup
none 256244 1 256243 1% /run/lock
none 256244 1 256243 1% /run/shm
none 256244 3 256241 1% /run/user
我如何删除正确的文件,安全删除 inode 文件吗?我在互联网上研究了几个删除命令,但我不确定它是否会删除系统文件/有用的文件。
root@Server: for i in /*; do echo $i; find $i |wc -l; done
/lib
11347
/proc
66820
/root
115
/run
338
/sbin
180
/sys
20920
/tmp
1
/usr
198764
/var
2407447
我该如何修复这个问题?
答案1
像@HBrujn 建议的那样,我按大文件搜索:
for i in /var/lib/*; do echo $i; find $i |wc -l; done
我注意到是来自 php5 的会话文件
/var/lib/php5/
我在哪里运行此代码来删除旧的会话文件(+1 天)
now=$(date +%s); time for i in /var/lib/php5/sess_5*; do if ((($(stat "$i" -c '%Z') + (86400 )) < $now)); then rm -fv $i; fi; done