WenRou's Blog
主机出现dev/sda3 磁盘使用100%,导致myql无法运行
2017-8-16 温柔哥
     今天鸟云主机有个兄弟说是莫名其妙数据库没了,回去后查看了已经100多天没有重启了,重启了但是那兄弟依旧说没法弄,后台面板也是报错,提示空间不足.

通过排查找到较大文件的目录,方法:

# df -lh  或者 df -hal


一看 dev/sda3 满了。



于是先切换到根目录



cd ..  (注意cd后面一个空格然后两个点号,再回车)



# du –sh * 再一级一级目录查下去,发现有两个地方占用空间比较大。







我的结果展示如下:



8.6G    backup

6.0M    bin

107M    boot

4.0K    cgroup

176K    dev

29M     etc

21G     home

404M    lib

22M     lib64

16K     lost+found

4.0K    media

4.0K    mnt

4.0K    opt

463M    root

8.0K    run

16M     sbin

4.0K    selinux

4.0K    srv

0       sys

624M    tmp

1.6G    usr

22G     var

1.6G    vhs







大家发现了吗?backup是我的备份目录,占用特别大。可以清理掉一些远古的备份文件。



var 里面不知道是什么,可以进去看看






# du -sh /var/* | sort -rn   这是按兆(M)来排序








结果如下:



145M    /var/cache

112K    /var/run

53M     /var/lib

49M     /var/spool

21G     /var/log

16K     /var/lock

8.0K    /var/empty

8.0K    /var/db

4.0K    /var/yp

4.0K    /var/tmp

4.0K    /var/preserve

4.0K    /var/opt

4.0K    /var/nis

4.0K    /var/local

4.0K    /var/games

1.2M    /var/www

0       /var/mail






发现是日志文件占用比较大,进去看看是什么日志



# du -sh /var/log/* | sort -rn 



发现:





24K     /var/log/dmesg.old

24K     /var/log/dmesg

24K     /var/log/anaconda.log

21G     /var/log/mysqld.log

16K     /var/log/secure-20201115

16K     /var/log/cloud-init-output.log

16K     /var/log/btmp





数据库日志占用比较大,如何清理呢?肯定不能直接删除。




先来到该日志目录



# cd /var/log



在该目录下执行



cat /dev/null > mysqld.log




然后再次



# du -sh * | sort -rn



然后发现mysqld.log被清理了




为何不用 du -sh /var/log/* | sort -rn  呢?因为先已经切换到已经在log目录下了













下面是另外一次发现的邮箱爆满问题,夜记录一下




第一个是个日志文件,先查到那个日志文件,在该目录下执行


# cat /dev/null > file.log

注意file.log是你需要清空的日志。

第二个发现是个邮件目录,来到/etc/postfix/目录,执行

# rm -rf incoming/* 本意是要删除/etc/postfix/incoming下面的所有文件的,结果

执行后出现"/bin/rm: Argument list too long"报错,应该是目录中的文件太多、处理时间太长导致的。

于是又来到incoming目录下执行

# ls | xargs -n 10 rm -rf

通过xargs命令,将文件10个分成一组,然后分批删除,这样就不会出现错误了。

备注1:我们执行上面命令的时候,一定要谨慎,要在当前需要删除文件的目录下执行,不要在其他目录中操作,要不你会删除其他目录文件的。


备注1:rm -rf 是无条件删除且不可恢复,要慎用!!







解决邮箱爆满



cd /var/spool/postfix/maildrop/



1   >/dev/null 2>&2



2   cd /var/spool/postfix/maildrop; ls | xargs rm -rf; 



    cd /var/spool/postfix/incoming; ls | xargs rm -rf;




3   vi /etc/crontab ;将‘MAILTO=root’替换成‘MAILTO="",然后service crond restart即可。如不行crontab -e 第一行增加MAILTO=""





发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容