主机出现dev/sda3 磁盘使用100%,导致myql无法运行

2023-05-31 10:10:20 浏览数 (1)

   今天鸟云主机有个兄弟说是莫名其妙数据库没了,回去后查看了已经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=""

---

0 人点赞