![错误地将服务器文件移动到一个目录,服务器现在无法工作](https://linux22.com/image/129464/%E9%94%99%E8%AF%AF%E5%9C%B0%E5%B0%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%8E%B0%E5%9C%A8%E6%97%A0%E6%B3%95%E5%B7%A5%E4%BD%9C.png)
我搞砸了我的 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 之外,启动没有任何问题。