从当前运行的 Apache 获取 Apache Vhost
Posted
技术标签:
【中文标题】从当前运行的 Apache 获取 Apache Vhost【英文标题】:Get Apache Vhosts from Currently Running Apache 【发布时间】:2013-11-03 11:02:08 【问题描述】:所以...我不小心删除了站点可用文件夹中的 vhosts 文件。
我想找回我的虚拟主机。有没有办法从当前运行的 apache 配置中获取它?我还没有重新启动。
这个人说不,但这是几年前的事了。
Apache : Recover "sites-enabled" config files
【问题讨论】:
尝试在底层文件系统上恢复可能是更好的选择。 @ChristianTernus 嘿,谢谢你的帮助。你能扩展一下你的意思吗? 几个问题:您可以物理访问您的服务器吗?您的 vhosts 文件所在的分区(已存在?:( )是否与您的引导分区不同?您是否碰巧有一个磁盘附加的可用空间大于您的 vhosts 文件所在的分区的大小? 1.带有 linode 的 VPS,因此没有物理访问。 2.没有 3.没有 还有一件事要尝试:lsof | grep /path/to/vhosts_dir/
【参考方案1】:
在 VPS 上进行远程磁盘恢复——我们开始吧!
首先,尝试:
lsof | grep /etc/apache2
。如果您看到类似的内容:
apache 1224 www-data 22r REG 8,5 1282410 1294349 /etc/apache2/sites-available/foo
你很幸运!来自extundelete's website:
如果您认为文件可能仍被某些程序打开(例如, 如果它是电影播放器当前正在播放的电影文件),以及 您知道文件名,然后首先按照以下步骤操作:
lsof | grep "/path/to/file"
progname 5559 user 22r REG 8,5 1282410 1294349 /path/to/file
请注意,第二列中的数字是 5559,而 第四列中的数字是 22。恢复该文件的命令 是:
cp /proc/5559/fd/22 restored.file
如果这不起作用,好吧。 Lots 的 people 相信你被搞砸了。但我觉得还是有希望的!
请注意,我认为这是一个
尽快关闭系统。 Make a full bit-for-bit backup of your disk image over the network。 在第二台 Linux 机器上,执行apt-get install extundelete
。
在该磁盘映像上运行 extundelete,看看您能得到什么。
如果您无法通过网络备份您的磁盘(空间不足,无法访问另一个 Linux 机器),您可以尝试booting into Linode recovery mode 并尝试直接在磁盘上进行 extundelete。这可能会导致数据损坏,因此如果您真的很重视磁盘,请不要这样做 - 或者再次备份它。
当然 - 唠叨时间 - 最好的解决方案是首先打开备份。
【讨论】:
没有尝试,因为它需要太长时间。 :) 但是感谢您的出色回答。以上是关于从当前运行的 Apache 获取 Apache Vhost的主要内容,如果未能解决你的问题,请参考以下文章