我搞砸了我的 AWS 实例。
demo
我在我的目录中创建了一个新目录/var/www/html
然后导航到该html
目录并运行以下命令:
sudo mv /* demo
服务器根目录中的所有文件和文件夹都出现在该demo
目录中。
我怎样才能把它移回来?
另外,我的目的是将目录内的所有文件/文件夹移动html
到该demo
文件夹。
答案1
我在两三年前就看到过这种情况,并且我知道有不同的 AWS 设置,因此这可能可行,也可能不可行。
无法再通过 SSH 访问该计算机(它确实允许登录,但 shell 无法启动)。没有像其他服务那样可用的“硬件”终端。
如果你的机器可以启动 root shell,那么命令
LD_LIBRARY_PATH=/var/www/html/demo/lib /var/www/html/demo/lib/ld-linux.so.2 /var/www/html/demo/bin/mv /var/www/html/demo/usr /
LD_LIBRARY_PATH=/var/www/html/demo/lib /var/www/html/demo/lib/ld-linux.so.2 /var/www/html/demo/bin/mv /var/www/html/demo/var /
LD_LIBRARY_PATH=/var/www/html/demo/lib /var/www/html/demo/lib/ld-linux.so.2 /var/www/html/demo/bin/mv /var/www/html/demo/lib /
LD_LIBRARY_PATH=/lib /lib/ld-linux.so.2 /var/www/html/demo/bin/mv /var/www/html/demo/bin /
应该会让您达到足够可恢复的状态。
如果有一个终端允许通过 VNC、远程桌面或其他方式登录,同样的事情。
在我们的例子中,两者都不起作用。
当时的管理员所做的是启动另一个临时 AWS 实例,强制损坏实例的脏关闭,分离其磁盘,并将其作为辅助磁盘附加到新实例。
然后他做了相当于
mount /mnt /dev/sdb1
cd /mnt/var/www/html/demo
mv * /mnt/
sync
shutdown -h now
并分离磁盘,重新连接到旧实例,除了由于脏关闭而导致的长时间 fsck 之外,启动没有任何问题。