今天晚上发生的事情,差点就成为了一场灾难。
后来分析这次的故障原因,其实原因很复杂,很多偶然因素凑在一起,触发了系统的一个极其隐蔽的BUG,现在想重现这个BUG都很有难度。不过通过解决这次的故障,让我对gentoo更有信心,一切都能掌控在手的感觉太好了!
今天晚上发生的事情,差点就成为了一场灾难。由于bkecp服务器要更换IP,但是更换之后,服务器一直ping不出去,工作时态记录也被清零,幸好还可以ssh上去,但是在更新的过程中出现异常,导致大量系统基本命令被清除,甚至包括sshd。也就是说,一旦我关闭了ssh窗口,明天只能回机房重装系统了。
那意味着之前的工作全部要重做,至少需要一周的时间才能恢复如初。
马上 emerge ssh,但是发现 wget 命令不存在,压根无法从网上下载软件包,幸亏distfiles里面有wget的tar.gz包。
马上 tar xvzpf wget....,tar命令不存在!
查看系统,发现还有以前额外安装 unrar 命令,马上从网上下载新的 tar 包,然后在我自己的系统下面解压,重新压缩成rar文件,FTP上传到服务器,但是,proftpd挂起,原因,shadow不见了!
所有系统服务中,只有http是正常的,感谢上天。用BKECP专题网站的文件上传功能上传 tar.rar,然后用 ssh 解压到 /usr/src/tar目录,chmod +x configure,./configure make make install。谢天谢地,幸亏我装过LFS。
成功了,tar命令安装上去了,重新 tar xvzpf wget,gzip命令不存在!
重复之前的办法,把 gzip.rar 上传,然后chmod +x configure,./configure make,还没到 make install,编译出错!原来gzip源代码是有bug的,赶紧找 /usr/portage/app-arch/gzip/file下面,果然有两个patch。拷贝到代码目录,patch,patch命令不存在!
无奈,手动安装patch,幸亏这次没错误了,要不我就实在没办法了。
然后patch gzip,编译,继续出错!
赶紧想办法,带着错误信息到gzip社区去找答案,原来,gzip一共有6个patch文件,file目录下面的不全。但是没有wget怎么获取新 patch?输入lynx命令,老天爷保佑,lynx还可以用。马上用lynx把所有patch down下来。一一打上patch,这次编译通过了,万岁!
回到wget,马上安装wget,编译、安装,OK!
因为以上代码都是我手动编译安装的,在gentoo的wolrd文件里面是不存在的,所以重新 emerge wget,出错!原来新的portage里面wget的ebuild文件指向的文件包名称已经换了,必须从网上重新下载,而系统报告找不到wget去获取 新文件。我不是已经安装了wget了么?仔细一看,原来默认的 Makefile 把 wget 安装到了 /usr/local/bin,而不是 /usr/bin。重新ln一下,emerge wget,成功!
马上 emerge tar gzip patch openssh,然后重启 proftpd,FTP服务器回来啦。继续 revdep-rebuild,丢失的7个主要package全部重新安装上来了。
做技术工作,真是太辛苦了,如果没有按照以前的习惯安装的 lynx 和 unrar,恶梦就成为现实了。
敬告各位,服务器如果没问题,还是尽量不要动的好,今天改了一个IP就引发了一系列的问题,虽然不是都怪这件事情,但是小心为上啊!
恩,怎么ping命令也不见了。
beyondfly 于 2007-12-06 00:03:20发表:
改了IP地址还会引起这么多的问题哈