zoukankan      html  css  js  c++  java
  • “设备上没有剩余空间” 导致登录不上 SSH 的解决方法

    最近给自己的服务器添加了新的电脑的 SSH 权限,但是新电脑上反复尝试都不能 ssh 上服务器。然而通过旧电脑却可以登录上去。没想到竟是因为设备上没有 inode 了。

    inode 是什么呢?

    一般 UNIX 操作系统上的每个目录、文件都会有一个“元信息”,存储了文件名、创建者、创建时间等等信息。而 inode 就是存储“元信息”的数据结构,这个 i 就是 index 的意思。
    因为 inode 本身也要存在硬盘里,所以也占一定的空间。

    使用 df 命令解决“设备上没有剩余空间”的报错

    登录到服务器上后,看到了“设备上没有剩余空间”的报错,touch 一个新文件也报这个错,rm 删除东西时就一直卡住了。这个时候就可以通过

    df -h
    

    命令查一下空间使用情况,如果是空间使用满了,就用

    du -sh
    

    命令来查找大文件,删除无用的文件来腾空间。

    然后用

    df -i
    

    命令来查看 inode 的使用情况,大概长这个样子:

    文件系统    Inode  已用(I)  可用(I) 已用(I)% 挂载点
    /dev/vda1  3276800  123327 3153473  4% /
    

    如果发现已用%已达100%,那么就有必要看看什么导致了那么多 inode 的占用。

    我这次通过 du -sh 查找到 docker 相关的目录占了很多空间,而 docker 本身却打不开,所以先删掉了也占很大空间的/var/log/ 下的文件,其中 maillog 居然有上 G 大小,tail 了一下发现有好多 “设备上没有剩余空间” 的日志。以及删除了大量的博客备份文件。然后就可以 systemctl start docker了。

    之后我用了

    docker volume prune
    

    果然开始了长时间的清理工作,最后成功把 inode 的使用率从 100% 下降到 4%。 其实如果平时执行 docker run 时注意加上 --rm,运行完就会自动清理容器的 volume。


    ┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
    ┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
    ┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
    ┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
    ┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
    ┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆
  • 相关阅读:
    PHP 单例 工厂模式 类的重载 抽象 接口
    上传文件
    ThinkPHP3.2中if标签
    JS闭包特性 运算符 DOM操作
    循环数组 连接数据库 AJAX
    ThinkPHP
    TP框架
    MVC框架
    类的自动加载,静态属性静态方法
    魔术方法__get()和set函数
  • 原文地址:https://www.cnblogs.com/flipped/p/14398453.html
Copyright © 2011-2022 走看看