我的 VPS 用的是 CentOS 系统,一段时间后发现 VPS 的硬盘就占用非常大,但是自己网站数据并不多,那么是什么占用了我的 VPS 硬盘空间呢?我们可以通过命令 du -sh 来分析一下。
登陆vps的ssh后,输入下面的命令: du -sh /*
可以列出你整个VPS所有文件夹的大小。其中“/ ”是控制分析哪个目录的,你根据上面的结果,然后灵活变化后面的路径就行了,例如: du -sh /usr/
用这个命令来分析usr目录下的文件夹大小,最后定位到大文件,直接删除就行了。
直白说,就是文件/文件夹总数限制。一般VPS限制为最大是1,000,000,具体还要看主机商的设置也有不少虚拟主机管理面板中可以看到,比如CPanel。
前段时间我的vps莫名奇妙的,mysql数据读不出来,但只是wordpress列表分类无法读取,一直显示No Categories
开始不知道原因,删除部分日志后正常了,但是过不了几分钟又无法读取了,于是开始找原因。
其中一次分析的时候,把mysql停止再启动发现,无法启动,提示 touch: cannot touch `/var/lock/subsys/mysqld’: Disk quota exceeded
google找到的解决办法有人说是空间满了换个地方存储,但是我空间明显只用了50%不到,所以不是空间问题,
后来发现时inodes满了,运行df -i命令可以查看当前inodes使用情况。
这个问题影响比较大,先不说ftp上传不了,
首先还是日志文件,无法新建日志文件会导致程序无法启动,或者运行中挂起,就会出现我上面提到的mysql问题
linux下日志是很重要的块,日志无法创建和更新将会影响很多程序的正常运行。
1、连续vps厂商客服来提高上限
一般的厂商默认安装的系统硬件上的配置一般都是给的低配,也就是说在免费配额内都还能提升。
但也有上限,可以提交一个ticket问清楚这些设置
2、确实已达上限,但是又不想升级package,自己清理文件的办法
主要是用到几个常见find、rm、grep、xargs举例:(1)删除当前目录下的所有空目录:cd /tmpfind ./ -type d -empty -delete
(2)查找当前目录下所有文件名为 *.tmp 的文件,直接删除 (慎用)cd /tmpfind ./ -name *.tmp -type f -exec rm -f {} \
(3)查找当前目录下所有文件内容,凡是包含指定字符串的文件,直接删除 (慎用)
find ./ -type f -exec grep -li file not found {} \|xargs rm
3、查看各个目录分别占了多少inodescd / #可以切换到任意你想查看的目录
目录操作:rm -rf mydir /*删除mydir目录,不需要确认,直接删除*/
mkdir dirname /*创建名为dirname的目录*/
cd mydir /*进入mydir目录*/
cd - /*返回进入此目录之前所在的目录*/
cd .. /*返回上一级目录,中间有空格*/
cd ~ /*回当前用户家目录*/
mv tools tool /*把tools目录改名为tool */
ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/
cp -a tool /home/vps.zzidc/www /*把tool目录,复制到www目录下 */
ls /* 列出当前目录下的内容 */
文件操作:
rm go.tar/* 删除go.tar文件 */
find mt.cgi/* 查找文件名为mt.cgi的文件 */
df -h /* 查看磁盘剩余空间 */
解压缩:
tar xvf wordpress.tar /* 解压tar格式的文件 */
tar tvf myfile.tar /* 查看tar文件中包含的文件 */
tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */
tar zcf vps.zzidc.tar.gz tool /* 把tool目录打包且压缩为vps.zzidc.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */
tar jcvf /var/bak/www.tar.bz2 /var/www//*创建.tar.bz2文件,压缩率高*/
tar xjf www.tar.bz2 /*解压tar.bz2格式*/
gzip -d ge.tar.gz/* 解压.tar.gz文件为.tar文件 */
unzip phpbb.zip /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */
下载:
wget http://vps.zzidc.com/
/*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */
wget -c http://vps.zzidc.com//* 继续下载上次未下载完的文件 */
进程管理:
ps -aux /*ps 进程状态查询命令*/
ps命令输出字段的含义:
[list]
[*]USER,进程所有者的用户名。
[*]PID,进程号,可以唯一标识该进程。
[*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
[*]%MEM,进程使用内存的百分比。
[*]VSZ,进程使用的虚拟内存大小,以K为单位。
[*]RSS,进程占用的物理内存的总数量,以K为单位。
[*]TTY,进程相关的终端名。
[*]STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
[*]START,进程开始运行时间。
[*]TIME,进程使用的总CPU时间。
[*]COMMAND,被执行的命令行。
[/list]
ps -aux | grep nginx /*在所有进程中,查找nginx的进程*/
kill 1234/*1234为进程ID,即ps -aux 中的PID*/
killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/
资源占用查询:
df -sh /home/wwwroot/* /* 查看/home/wwwroot/下各个目录的占用大小 */
free -m /* 查看内存核swap使用情况 */
top /* 查看程序的cpu、内存使用情况 */
netstat -ntl /* 查看端口占用情况 */
用户管理:
adduser /*添加用户,如adduser vps.zzidc */
deluser /*删除用户,如deluser vps.zzidc */
passwd /*修改密码,按提示输入密码,密码不显示*/
Vim操作:
移动类的:
h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ <End>: 行末
0 <Home>: 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 当前行移到屏幕的首/中/底部
跳转:
" : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I <Tab>: 则跳到一个 “较新” 的地方
查找:
/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录
编辑:
i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)
退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)