美文网首页程序员我爱编程
Linux系统盘占满后解决办法

Linux系统盘占满后解决办法

作者: Villain丶Cc | 来源:发表于2018-05-27 10:59 被阅读169次

    昨天遇到一个感觉很坑的问题,今天总结了一下昨天遇到的问题和解决办法,希望以后的小伙伴,和我一样遇到坑项目后,能快速解决。

     遇到的问题如下,tomcat报

                                        java.io.IOException: No space lefton device

                                       at java.io.FileOutputStream.writeBytes(Native Method)

                                       at java.io.FileOutputStream.write(FileOutputStream.java:282)

            日志信息不再打印,用户上传信息失败。果断的df –h查看了各分区的情况,当时我就吃惊了,系统盘50G满了,占用率100%,最伤心的是还看到197G的两个盘都没用,这还玩毛线啊,我开始以为日志打印过多导致的盘被占满了,查看了下日志才打了一个多G,又查看了各个文件的占有率,才发现用户所有在前端系统上传的资料也全放在Tomcat工程目录下,不满才怪,由于都是用户上传的信息图片,我不敢乱删,又由于系统已经上线,转盘后怕代码找不到图片路径,后面还要改代码,然后跑去发布更新,这样一来一去,不被骂死才怪。

     然后就想用重定向建立软连接的方法来解决这个问题,(软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;软连接可以跨文件系统;软链接有自己的inode,并在磁盘上有一小片空间存放路径名;软连接可以对一个不存在的文件名进行连接; 软连接可以对目录进行连接)就是不改变以前的配置,然后使用链接将所有的数据分配到剩下空间大的盘里面,实现后的效果如下,

    建立链接后的图片

            由于昨天只是全速去解决问题去了,没有截图,今天只有处理过后的图片了。

    下面就教你们如何建立链接,在建立连接的时候,要把服务停掉,不然你操作的时候一边读取拷贝,用户还不停的上传,这个事情做起来就没玩没了了。

    具体操作如下啊

    cat  /proc/partitions

    //先建立两个文件夹:

    mkdir vdb2

    mkdir vdc2

    //进入到opt目录下

    cd /opt/

    //将vdb2挂做连接点

    mount/dev/vdb2  vdb2/

    mount/dev/vdc2  vdc2/

    //将文件格式化为ext4

    mkfs.ext4/dev/vdc2

    //在opt目录下再讲文件改名

    mvapache-tomcat-6.0.29  apache-tomcat-6.0.29-bak

    mvapache-tomcat-6.0.29-task apache-tomcat-6.0.29-task-bak

    //进入 vdb2

    cd vdb2/

    //创建文件夹

    mkdir tomcat1

    //使用ln –sf建立软连接

    ln -sf tomcat1/../apache-tomcat-6.0.29

    同上:

    cd vdc2/

    mkdir tomcat2

    ln -sf tomcat2../apache-tomcat-6.0.29-task

    cd ../

    rmapache-tomcat-6.0.29

    rmapache-tomcat-6.0.29-task

    //将一个文件链接在另一个文件上

    // 其中 vdb2/tomcat1就是源文件, apache-tomcat-6.0.29是链接文件名,其作用是当编辑 apache-tomcat-6.0.29,实际上是链接编辑vdb2/tomcat1。

    ln -sf vdb2/tomcat1  apache-tomcat-6.0.29

    ln vdc2/tomcat2-sf apache-tomcat-6.0.29-task

    cp  apache-tomcat-6.0.29-bak/*  apache-tomcat-6.0.29/

    //强制复制文件

    cp apache-tomcat-6.0.29-task-bak/*  apache-tomcat-6.0.29-task/ -fr

    cp  apache-tomcat-6.0.29-bak/*  apache-tomcat-6.0.29/ -fr

    复制完毕后进入tomcat原文件

    cdapache-tomcat-6.0.29/bin

    //启动tomcat

    sh startup.sh

    //查看进程是否启动成功启动成功就ok了

    ps -ef |grep tom

    链接建立完毕后,你后面的操作就和以前操作tomcat一样操作就行了,不需要去管理链接,和目标文件。

            我只是写了大概的步骤和一些主要的操作的命令,有些简单的操作命名我删除了,也只是给你们一个思路,说不定你有更好的办法解决呢。

    相关文章

      网友评论

        本文标题:Linux系统盘占满后解决办法

        本文链接:https://www.haomeiwen.com/subject/fqlbjftx.html