为什么执行命令需要磁盘空间

为什么执行命令需要磁盘空间

我们通过 SSH 远程管理多个 Linux 盒子,最近其中一个盒子填满了磁盘空间,导致登录的人根本无法执行命令,负责解决问题的人甚至无法通过 SSH 登录。

值得庆幸的是,我们能够恢复到磁盘完全填满之前的早期状态并向后工作。

我不负责这个盒子,所以笑声是给别人看的,但有人要求提供技术解释。为什么会发生这种情况,像 ls 和 rm 这样的简单命令甚至无法运行。我认为这与需要临时空间来处理命令有关,但会对您可以提供的任何见解感兴趣。

答案1

我怀疑那rm会失败。运行rm不会strace显示任何临时文件的使用。

但许多 shell 脚本都会遇到问题。例如,如果此处的文档/tmp不再可写(由于空间不足),则无法执行该文档。这可能会导致 SSH 登录尝试失败。

为将来

如果这种情况再次发生:

  • 为了更好地理解正在发生的事情,rm运行一下可能会很有趣: 。stracestrace rm file
  • 您不必删除文件,甚至不必调用外部命令来释放空间:rm file您可以在 shell 中执行此操作:: >file。这会将文件大小减少到 0。不过,它不会释放 inode。

相关内容