linux打开文件数

使用vesta之后,本人遇到最为头疼的就是服务器log文件增长过快塞满空间导致宕机假死
之前以为只需限制log大小就可以了,但后来发现依然不能解决问题
查看error.log发现绝大多数的记录都是
WordPress\xe6\x95\xb0\xe6\x8d\xae\xe5\xba\x93\xe6\x9f\xa5\xe8\xaf\xa2SELECT
这样的奇怪记录,Google之后才知道这是由于限制了单个进程打开文件数所致

解决办法就是修改 /etc/security/limits.conf 添加2句进去 以下的运行即可

In /etc/security/limits.conf 
  soft nofile 1024 
  hard nofile 65535 
Increase ulimit by "ulimit -n 65535" 
echo 65535 > /proc/sys/fs/file-max 
In /etc/sysctl.conf 
  fs.file-max=65535

log文件过大

使用vesta管理vps时,有时候会出现服务器无响应,网页打不开的情况,此时重启apache或许可以短时间恢复正常,但原因可能在于log文件过大占用系统空间导致无法访问。
那么问题来了,如何在SSH查看文件大小?
显示当前目录所有文件大小的命令

ls -lht

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。du可以查看文件及文件夹的大小。两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。

cd /
df -h
du -h --max-depth=1 /var/logs/
du -h --max-depth=1 /var/logs/*
du -s * | sort -nr | head

du 统计文件大小相加
df 统计数据块使用情况

如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。

使用下面的命令杀掉进程之后,系统恢复。

fuser -u /var/spool/clientmqueue

关于ubuntu清理系统垃圾可以看这里

免费VPS管理软件

除了Webmin以外,Vesta 也是一个不错的软件。相对而言,Vesta的功能更加全面傻瓜,而Webmin功能也不差但可能要有一定编程基础才用得好。

用Vesta可以简单建站、设置信箱、设置自己的DNS服务器、设置防火墙、设置统计分析等等。

这里要说的是,如果Vesta出现NO LANGUAGE DEFINED 的提示不能登录,可以运行

df -h

free -m

来释放缓存就可以登录进去了。