服务器MySQL报错ERROR 1030 (HY000): Got error 28 from storage engine

正在家里看美剧在,同事微信call我表示所有接口都不行了,服务器貌似崩了。

查找原因

查看后发现是MySQL报错:

ERROR 1030 (HY000): Got error 28 from storage engine

一番google后发现是由于系统磁盘临时空间不足导致。
在服务根目录下运行:

[root@iZ****tecZ /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G   38G   16M 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm

可以看到已经磁盘已经占用100%了。

解决方案:

清理服务器,腾出空间来。
先找出哪些文件文件夹占用空间比较多,一步一步找到,一般是日志文件或者定时备份的文件压缩包比较占空间。

这里涉及到查找文件夹或者文件占用空间的比较有用的命令,记录一下:

[root@iZ****tecZ /]# du -hm --max-depth=2 | sort -nr | head -12
38053   .
34432   ./var
31423   ./var/www
1815    ./var/log
1579    ./bak20160908
1334    ./usr
1086    ./var/lib
972 ./bak20160908/geo12345
444 ./usr/share
416 ./lib
354 ./bak20160908/test
330 ./lib/modules
  • 命令du -hm --max-depth=2 | sort -nr | head -12这个命令的意思是目录下占用空间从大到小排序,列出前12个。
  • du -h --max-depth=2 /var/www/html这个命令可以列出/var/www/html目录下子文件夹和文件占用空间大小,深度--max-depth=2根据需要调节,表示子文件夹层数。
  • ll -lh当前文件夹下所有文件的大小、权限、归属等信息。

经过一番查找,由于忘记关掉ThinkPHPlogs功能,导致在网站的RunTime/Logs里面存在大量日志文件占掉了大把的空间,占了磁盘总大小40G中的23G,删除后服务器恢复正常。

Centos常用命令记录之:iptables

Centos防火墙的设置,在Centos 7之前的版本中大量都是在使用iptables,项目服务器的运维上急需相关知识;

  • 首先,记住iptables的配置文件的位置/etc/sysconfig/iptables,修改前最好备份一下;

iptables相关命令:

  • 查看现有的iptables规则:
service iptables status
Table: filter
Chain INPUT (policy DROP)
num  target     prot opt source           destination         
1    ACCEPT     tcp  --  0.0.0.0/0        0.0.0.0/0       state NEW tcp dpt:8090 
2    ACCEPT     tcp  --  0.0.0.0/0        0.0.0.0/0       state NEW tcp dpt:3306 
3    ACCEPT     tcp  --  0.0.0.0/0        0.0.0.0/0       state NEW tcp dpt:80 
4    ACCEPT     tcp  --  0.0.0.0/0        0.0.0.0/0       state NEW tcp dpt:22 
5    ACCEPT     tcp  --  0.0.0.0/0        0.0.0.0/0       state NEW tcp dpt:21 
6    ACCEPT     icmp --  0.0.0.0/0        0.0.0.0/0       icmp type 255 
7    ACCEPT     all  --  127.0.0.1        127.0.0.1           
8    ACCEPT     all  --  0.0.0.0/0        0.0.0.0/0       state RELATED,ESTABLISHED 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
  • 添加/插入规则
#使用A(ADD)命令在规则的结尾添加一条
iptables -A
#使用I(INSERT)命令在指定位置插入一条
iptables -I
  • 删除现有的规则,删除上面INPUT表中的序号为1的规则:
iptables -D INPUT 1
  • 保存规则
service iptables save
  • 重载规则
service iptables restart

这些就是基本的iptables操作了。