linux系统cannot execute binary file 问题解决

这几天遇到的问题,简单说一下过程。首先是手机客户端异常,没有数据,后来网站页面没数据,页面异常。(客户端接口和网站都是使用同一台服务器,穷,没办法)

于是判断为数据库问题,远程连接,连接上了数据表不能打开。

于是尝试重启数据库,失败,提示无法开启进程pid文件。重启系统,其他服务都可以打开,唯独mysql 启动不了。(远程连接,所以看不到开机过程)。看了日志,有提示日志文件过大,于是删了,还是提示失败。后来仔细看,提示mysqld部分语句有问题。bin/sed cannot execute binary file。心急折腾了一下,重启系统,后来就连接不上了,叫机房看,说机器重启了,但是网络不通。

查了很多资料,初步估计是很多命令无法执行 cannot execute binary file。网上找到的方法是重新安装命令,可是远程已经连接不上,只能到机房去看了。

由于不是很熟,必须一边上网一边处理,想借个笔记本进去,机房技术说没有,建议拆设备出来处理。

在办公室开机后,果然看到很多cannot execute binary file,很多服务无法启动。ls -la /bin 发现了不能用的命令都在同一个时间(16:50)被修改了。

列出被修改过的命令

ls -la /bin | grep '16:50' 

 

于是尝试挂载光盘修复命令

mount /dev/dvd /mnt/cdrom

折腾了好久才发现我的安装光盘没有命令安装包。想用光盘启动时rescue也没有找到菜单。

只好回家再想办法了。幸好之前已经下载了iso。这要提醒一下,我的系统是centos 6.3 下载了两份安装盘,一份live cd, 一份是两个iso的安装盘, live cd 是没有命令安装包(rpm)的。

回到办公室,重新挂载光盘,进入Package目录。

不知道命令属于那个安装包的 可以先

rpm -qf `which 命令`

查询将列出包名 (注意这个`不是分号,是键盘英文输入法下,esc下面那个键。)

执行

rpm -ivh xxx.rpm --force

xxx是命令对应的安装包名。

一个个命令安装完后,重启系统,一切ok。

 

参考:http://bbs.chinaunix.net/thread-3669237-4-1.html

1.00 平均分 (30%) - 3

1 Comment

  1. good! super!

评论功能已关闭.