在Linux中修复或replace/ bin /文件夹

停电后,我的CentOS服务器开始出现许多系统命令被破坏的问题。 因此,我一直在收到有关rm或mv等关键命令的消息:“无法执行二进制文件”。 使用Linux救援光盘,我设法取代了一些文件,让我回到主要工作状态,但我仍然遇到较不重要的命令,如sed或tar的问题。 而不是find并replace每个可能被破坏的文件,我想继续前进,完全replace或修复这些系统命令为默认状态。 我已经尝试从CentOS光盘运行升级过程,但是这只会导致我的initrd文件出现问题,并且不能纠正我的系统命令的任何问题。 任何人都可以build议在哪里可以find一个包,重新安装这些文件,而不必重新安装CentOS?

正如@Ency所示:

 rpm --verify --all 

会告诉你所有的改变。

不过,我build议安装“yum-verify”,或者如果它尚未安装,然后使用如下所示:

 yum verify --verify-filenames='*bin/*' 

这与“rpm –verify”非常相似,但是可以将其限制到某些目录,并且默认不会显示configuration文件更改。

输出并不真正告诉你什么是包,所以你需要使用:

 rpm -qf /full/path/to/file 

要么

 yum provides /full/path/to/file 

看看这个文件属于哪个软件包

那么你可以使用:

 yum reinstall packagename 

即使它是相同的版本,也要重新安装RPM。

不过,我build议备份所需的文件( /home/etc ,`/ var /等等),并重新安装所有的东西。 从你所描述的,我怀疑你不会发现隐藏在系统上的所有问题。