我们通过 SSH 远程管理多个 Linux 盒子,最近其中一个盒子填满了磁盘空间,导致登录的人根本无法执行命令,负责解决问题的人甚至无法通过 SSH 登录。
值得庆幸的是,我们能够恢复到磁盘完全填满之前的早期状态并向后工作。
我不负责这个盒子,所以笑声是给别人看的,但有人要求提供技术解释。为什么会发生这种情况,像 ls 和 rm 这样的简单命令甚至无法运行。我认为这与需要临时空间来处理命令有关,但会对您可以提供的任何见解感兴趣。
答案1
我怀疑那rm
会失败。运行rm
不会strace
显示任何临时文件的使用。
但许多 shell 脚本都会遇到问题。例如,如果此处的文档/tmp
不再可写(由于空间不足),则无法执行该文档。这可能会导致 SSH 登录尝试失败。
为将来
如果这种情况再次发生:
- 为了更好地理解正在发生的事情,
rm
运行一下可能会很有趣: 。strace
strace rm file
- 您不必删除文件,甚至不必调用外部命令来释放空间:
rm file
您可以在 shell 中执行此操作:: >file
。这会将文件大小减少到 0。不过,它不会释放 inode。