昨天维护期间,我在移动文件时犯了一个错误,我输入的是 mv /* /destination-path ...,而不是 mv ./* /destination-path :( 我中途停止了移动过程,然后将文件移回 /,一切看起来都很好。但我注销了,现在我无法登录这台服务器,无论是通过 ssh 还是在控制台上。
ssh 返回:
MacBook:johns$ ssh -vv root@groom
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to groom [192.168.133.196] port 22.
debug1: Connection established.
debug1: identity file /Users/johns/.ssh/id_rsa type -1
debug1: identity file /Users/johns/.ssh/id_rsa-cert type -1
debug1: identity file /Users/johns/.ssh/id_dsa type -1
debug1: identity file /Users/johns/.ssh/id_dsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
在物理控制台上我得到:
O0o.oops() [console.c(83)]: Opening console failed
该服务器可 ping 通,并且在其上运行的所有虚拟机都可以通过 ssh 访问。
我是不是彻底完蛋了?
PS 不幸的是没有任何备份。这不是生产服务器,唯一有价值的东西是几台完好无损且正在运行的虚拟机。操作系统是运行 Xen 的 CentOS 5.x,我可以通过 DRAC 访问服务器。我只需要找到一种登录方式。有什么想法吗?
答案1
不,你并没有完全陷入困境,这就是你花时间做好备份的原因。现在只需前往你的服务器并恢复它们。
答案2
这是个错误。我们都犯过这样的错误。这个错误可能很难恢复。您没有提供任何有关服务器操作系统发行版/版本的详细信息。您是否有系统控制台访问权限(ILO、DRAC、VMWare 等)?
即使我们让你进入系统,我也不相信安装的完整性。你有备份吗?
答案3
根控制台是装好弹药的火箭筒。mv
、rm
和dd
其他一些命令的瞄准弧穿过你的脚。你在错误的时间扣动了扳机,失去了一条腿。
此时,从备份中恢复是您的最佳选择。将来,当您以 root 身份操作时,您将更加小心(真的在按下回车键之前停下来阅读你输入的内容),如果/当你将来犯这样的错误时,你会记得在测试是否可以再次登录之前不要注销。
生活中的所有事情都是学习的经历。这一次可能会很痛苦。痛苦可以很好地强化记忆。
答案4
毫无疑问,你的情况很糟糕。我怀疑你能否在不重启的情况下重新进入盒子。你可以试试sftp
,根据登录失败的位置,它可能工作。但我不会指望它。
在重新启动时,您有几个选项。您可以使用 LiveCD/Rescue CD 启动并尝试清理或从那里迁移内容,或者您可以尝试使用init=/bin/bash
内核行上的附加启动选项进行启动。只要 bash 可用,您就可以进入框(没有运行任何服务,也没有启动任何内容)。但是,它会带您进入提示符,您可以在其中尝试获取所需的内容。
我的建议是直接跳到 LiveCD,因为这样您将拥有更强大的功能,而且在修复系统时也不必担心系统损坏。使用戴尔硬件和 DRAC,如果您无法轻松物理访问设备,则可以从位于本地计算机上的 CD 磁盘或 ISO 映像远程安装、访问和启动。
这很好地说明了为什么许多人分别将rm
、mv
、cp
等别名为rm -i
、mv -i
和cp -i
。它为您提供了额外的健全性检查和(最低限度的)安全网,以发现简单的错误。