V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
edison111cry
V2EX  ›  问与答

Linux 系统盘快满了怎么办

  •  
  •   edison111cry · 2017-03-19 10:36:50 +08:00 · 2741 次点击
    这是一个创建于 2808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,使用的是阿里云,购买的时候是系统盘 20G ,挂载盘是 200G 。 装的 NGINX+PHP 放在,网站访问目录在:/var/www/下 里面有好几个网站: /var/www/website-1 /var/www/website-2 /var/www/website-3 .........

    前两天用 df -h 查看系统盘 / 快要满了,而 /mnt 挂载盘还是空的。 各位大神这种情况该怎么办,我要整个把服务器重装一遍到挂载盘上吗?

    还是要在 /mnt 下面 mkdir 很多个子文件夹,然后用软链接的方式分别链接到 /var/www/website-1/upload /var/www/website-2/upload /var/www/website-3/upload .........

    用来保存网站上传的新的文件之类的。 这样工作量比较小,也能暂时解决问题,不过感觉有点挫 :(

    16 条回复    2017-03-19 17:29:45 +08:00
    mringg
        1
    mringg  
       2017-03-19 10:39:01 +08:00 via iPhone
    不如把 www 都移到数据盘,然后 ln
    zjqzxc
        2
    zjqzxc  
       2017-03-19 10:39:03 +08:00
    如果是我的的话,我选择把 nginx 的根目录改到 /mnt/www 下,然后 mv -r /var/www /mnt/www
    edison111cry
        3
    edison111cry  
    OP
       2017-03-19 10:46:34 +08:00
    @zjqzxc
    也想过这样搞,但是当时 nginx 和 php 等很多东西都是自己源码编译的,路径都是在 /usr/local, /var 等目录了,如果我直接把 mv -r /var/www /mnt/www , 会不会有问题呢?

    还是这个 www 目录只跟 nginx.conf 文件里:
    server {
    root /var/www;
    }
    这段话有关系,然后改成:
    server {
    root /mnt/www;
    }

    再重启 一下 nginx 就 行了? 其他的 PHP 什么别的都不用管,也不用重启 ?
    jarlyyn
        4
    jarlyyn  
       2017-03-19 10:46:53 +08:00
    把 /var 目录挂到 mnt 下去……
    edison111cry
        5
    edison111cry  
    OP
       2017-03-19 10:54:46 +08:00
    @jarlyyn
    网上搜了一下是大概如下的流程吗?
    ------------------------------------------------------------------------------------------------
    6. 拷贝 /var 下的所有内容到新的硬盘
    cp -pdr /var /storage
    或在 /var 目录下执行: find . -depth -print | cpio - pldvm /temp

    7. 删除当前 /var 目录下的内容
    rm -rf /var/*

    8. 重新挂载硬盘到 /var 目录
    umount /dev/sdb1
    mount /dev/sdb1 /var

    9. 设置开机启动自动挂载
    新创建的分区不能开机自动挂载,每次重启机器都要手动挂载。
    设置开机自动挂载需要修改 /etc/fstab 文件
    #vi /etc/fstab
    在文件的最后增加一行
    /dev/sdb1 /var ext3 defaults 1 2
    ------------------------------------------------------------------------------------------------

    感觉有些小复杂,万一没搞成功,岂不是所有的网站都用不了,有点小怕怕 :)
    solrted
        6
    solrted  
       2017-03-19 10:55:18 +08:00 via Android
    把 nginx php ,网站数据等都放到 /mnt 分区下。
    zjqzxc
        7
    zjqzxc  
       2017-03-19 10:55:18 +08:00
    @edison111cry web 目录只用改 nginx.conf 文件然后重启就行,如果使用了 cgi-bin 的话对应目录也要调整或者不用调整;

    如果说有很多自己编译的(一般来说自己编译的软件和 web root 并没有关联,但是我不知道你是不是还用了什么不常见的东西)且实在不放心的话,就 cp 过去,/var/www 下的东西,手动删除自己知道肯定没可以删的。
    jarlyyn
        8
    jarlyyn  
       2017-03-19 11:06:40 +08:00
    @edison111cry

    是的。

    确认问题前先别删除。
    lun10439547
        9
    lun10439547  
       2017-03-19 11:21:18 +08:00
    还不如 开一台按量的 然后镜像 顶上。。。最后慢悠悠的重装 数据迁移。。。这样可以避免乱中出错。。。。
    Aliencn
        10
    Aliencn  
       2017-03-19 12:32:55 +08:00
    重装一遍系统,你会发现系统盘变成 40G 了
    loading
        11
    loading  
       2017-03-19 12:34:09 +08:00
    建议再买一台,然后挪过去再说,不要乱玩线上服务器。
    edison111cry
        12
    edison111cry  
    OP
       2017-03-19 13:27:06 +08:00
    感谢楼上各位的回复,不过以前编译用的东西确实比较多,还有 memcache 和 redis 等都同时在用,可能这些东西跟目录结构关系不大,不过就怕万一真的搞到 /mnt/www 目录下真出问题了那才是悲剧呢。

    我就先准备用最挫的方法,软链接的方式分别链接到 /var/www 目录下有上传文件的目录吧,稍微改一下代码指向的目录结构。虽然方法比较挫,好歹完全在我的掌控之中。情非得已 :(
    binghe
        13
    binghe  
       2017-03-19 13:36:16 +08:00
    既然是阿里云,先做一份快照。然后开搞。万一出问题了恢复快照。
    caola
        14
    caola  
       2017-03-19 15:49:08 +08:00
    先备份,关机再快照,然后重装系统(现在阿里云默认系统般都是 40G ),或者购买更大的系统盘,再恢复快照。
    liyvhg
        15
    liyvhg  
       2017-03-19 17:13:03 +08:00 via Android
    mount -o bind
    zjqzxc
        16
    zjqzxc  
       2017-03-19 17:29:45 +08:00
    @edison111cry memcache,redis 这些跟 we broot 都没关系,除非把 redis 的持久化文件扔 /var/www 里了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5916 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:07 · PVG 10:07 · LAX 18:07 · JFK 21:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.