我对黑屏 Os-es (*nix) 比较陌生,他们给了我一些在 Linux 上运行的命令:
- 删除 etc/rc.d/rc0.d 仅删除 logscan、procscan 和 gpp
我很困惑并做了:
rm -rf rc.d
rm -rf rc0.d
结果 init.d 也被删除了。**
后来,我rc.d
从另一台服务器复制了该文件夹,但有几个软链接,整个文件夹结构丢失了,没有软链接,只有文件。
/etc/rc.d
删除和会产生什么影响/etc/rc0.d
?它与文件有什么关系init.d
?我们可以恢复这些文件(rc.d
& rc0.d
)吗?我们可以从另一台服务器复制它们并将它们放在下面/etc
吗?这会有帮助吗?重启有帮助吗?
答案1
在 RHEL 6 中,/etc/rc.d/init.d/
是 SysVinit 样式启动/关闭脚本的实际位置。/etc/init.d
是到它的符号链接。
这些/etc/rc.d/rc[0-6].d
目录应该只包含指向/etc/rc.d/init.d/
.还有一组符号链接/etc/rc[0-6].d
指向 中的相应目录/etc/rc.d/
。
最好的选择是从最初从同一服务器获取的备份中恢复这些目录,因为它可以确保您拥有与以前完全相同的配置。
但是,如果您有多台服务器以相同的方式配置(= 安装相同的 RPM,运行相同的服务),那么通过复制目录您可以获得相当好的(但不一定完美)结果。
我绝对建议首先从其他服务器复制/etc/rc.d/rc
,/etc/rc.d/rc.sysinit
因为它们在服务器之间可能不会改变。如果没有这些脚本,服务器肯定会在启动过程的早期崩溃到单用户模式,这可能会使进一步的修复变得更加不方便。
/etc/rc.d/rc.local
您的本地管理员可能会也可能不会修改;默认情况下它不执行任何操作,但最好让它存在。因此也复制它,但如果它有非默认内容,请确保该内容适用。
/etc/rc.d/init.d
然后,您可以从配置与受损系统相同的服务器复制内容,然后使用以下命令恢复脚本的默认符号链接:
cd /etc/rc.d/init.d
for i in *; do chkconfig --add $i; done
这将恢复出厂默认值各种服务的启用/禁用配置;之后,您应该chkconfig --list
在损坏的服务器和其他配置相同的服务器上运行,并使用chkconfig <service name> on
/chkconfig <service name> off
命令调整各种服务的启用/禁用状态,以匹配其他配置相同的服务器实际拥有的服务(或任何有意义的内容)关于受损服务器的用途(如果其他服务器不完全相同)。
然后,您可以用来rpm -Va | grep /etc/rc.d/init.d
验证从 RPM 安装的软件的所有脚本是否都存在。它将列出 RPM 中交付的默认状态下丢失或修改的所有脚本。如果某些脚本丢失,yum reinstall <package name>
可能是修复它们的简单方法。
如果您有一些不是从 RPM 软件包安装的第三方软件,您将需要查看其安装说明并检查它们是否具有需要手动替换的启动脚本。