跳到内容

文章类别:服务器

邮件服务器拆机的悲剧

学院的邮件服务器持续运行有4年了,从装好以后就没动过,

现在积累了一大堆问题要收拾,

首要的就是要换一部分硬件,

电源跟CPU散热器必须换,声音巨响,不知道那天就停转,

内存也要换,双至强配1G的内存是不是有点小了?

由于不清楚前有配置的具体型号(XX硬件大师不能满足要求),

决定拆了主机看看,顺便清一下灰.

在没有任何用户提示的情况下,邮件服务器关机下线了……

尼玛这个灰可真多啊,倒在地上都有一小堆,

还是弄不干净,就把整个全拆完了,一地配件,

取散热器的时候发生了悲剧的事情,

硅脂时间太久已经结成一块了,直接把CPU从底座上扯下来了,两块都是,

然后不知道那位同学那的时候不小心,埋下了悲剧的伏笔,

清完灰,用点小暴力把CPU扣下来,结果发现有一块装不回去底座上去了!

本来以为底座上的孔被灰堵了,但是换上另一块有装的进去,

拿起那块CPU一看,悲剧了,针脚弯了……

然后一哥们扳了两下,想扳回来,还是装不回去,

然后经过几次试验,已经有一片针脚都弯了……

由于我们这次更换配件预算有限,

管钱的老大看到这种情况就说,完了完了,要重新计划了.

还得老哥我出马,端坐到台灯底下,跟同学借张电话卡,

针脚的间隙刚好可以放进电话卡,哪里弯了卡就推不进去,很容易找到,

而且轻轻摇两下电话卡就能扳回来,

横竖来回纠正几次,拿到底座上一试,好了,

省了一千块钱……

记下型号就全部都装回去,发现少了几颗螺丝钉,应该是拆之前就缺的,

把主机放回机柜,接上插座的瞬间,停电了!!!

工作室所有插座都没电了!

三台服务器全挂掉了……

赶紧打电话给电工师傅,等了二十分钟,师傅来了,

打开配电室,貌似跳闸了,扳回去就好了,倒杯水招呼一下师傅.

然后开机……开不了机了!

检查一下,所有配件都接好了,然后跳了一下线,好了,

三台服务器都恢复上线.

终于over了.

apache单独编译mod_rewrite Error: Command failed with rc=65536解决办法

(基于debian系统)

不久前博客迁移到现在的服务器上来,

刚开始只有首页可以访问,其他页面都显示found on this server,

主题自带404页面不起作用,很不友好.

将wordpress的固定链接改为默认的xxx/?xxx=xxx的模式才可以访问其他页面,

404页还是无效.

上网查的,由于apache没有开启rewrite模块,

打开apache的配置文件,没有找到关于载入rewrite模块的代码,

目录文件也没有相关的文件,得出结论:

这台主机当初编译apache是没有编译rewrite模块…

这台为所属单位贡献收入过百万的主机居然没有rewrite…

好吧,我自己编译…

find -name mod_rewrite.c

找到源代码的位置,例如:

/usr/local/src/httpd-2.2.13/modules/mappers

然后使用 Apache 安装好的 apxs 命令编译即可

/usr/local/apache2/bin/apxs -i -a -c ./mod_rewrite.c

但是我在编译时出现了如下错误:

Warning! dlname not found in /usr/local/apache2/modules/mod_rewrite.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2/modules/mod_rewrite.so
chmod: cannot access `/usr/local/apache2/modules/mod_rewrite.so’: No such fr directory
apxs:Error: Command failed with rc=65536

上网查询得知是libtool的版本不同所致,解决方法如下:

vim /usr/local/apache2/build/libtool

按照如下修改:

build_libtool_libs=no
build_libtool_libs=yes

fast_install=needless
fast_install=yes

dlopen_support=unknown
dlopen_support=yes

dlopen_self=unknown
dlopen_self=yes

dlopen_self_static=unknown
dlopen_self_static=yes

host_alias=
host_alias=i686-pc-linux-gnu

保存后重新编译,并重启apache,

这是应该默认已经载入rewrite模块了.

Over.

WampServer localhost 图标不显示解决办法

在安装目录中找到

\wamp\bin\apache\Apache2.2.17\conf\extra\httpd-autoindex.conf

文件,

打开进行修改,

Alias /icons/ “C:/Dev/Projets/WampServer2-64b/install_files_wampserver2/bin/apache/Apache2.2.17/icons/”

<Directory “C:/Dev/Projets/WampServer2-64b/install_files_wampserver2/bin/apache/Apache2.2.17/icons”>

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

修改为

Alias /icons/ “icons/”

<Directory “icons”>

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

上面用的相对目录,

因为在 httpd.conf 里面设置了

ServerRoot “D:/wamp/bin/apache/apache2.2.17”

或者用绝对目录也行.

\wamp\bin\apache\Apache2.2.17\icons

debian配置freeNX,实现远程维护系统

前几天在工作室配置了一下freeNX,当时没有成功,

由于我是新接管的debian服务器,不太熟悉,

以前全部使用ubuntu,双击deb包就能安装,

安装完freeNX再装openssh-server,然后就能用了.

这台服务器有点不一样,

以前不知道,原来debian不能双击deb安装,以前用ubuntu偷懒了,

用dpkg -i nx***.deb把freeNX安装上,

然后apt-get install openssh-server装上ssh服务,

如果是在ubuntu上,现在用系统登录用的用户和密码就已经能远程连接了,

不过还有点问题,具体错误记不得了,就是端口不对的意思,

默认的22端口不能连接,用netstat -ap查看端口,找到ssh的端口,

尝试连接,可以连接,不过有权限问题,等会再解决,

可以修改ssh的端口:gedit /etc/ssh/sshd_config

找到 port 项,改为所需即可,

然后重启ssh,用/etc/init.d/ssh restart

这里有两个文件:ssh_config和sshd_config,

引用:”ssh_config文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式.”

引用:”sshd_config是OpenSSH的配置文件,允许设置选项改变这个daemon的运行.”

由于不了解前面的管理员有什么意图,决定不修改ssh的端口,而修改nx配置文件,

用gedit /usr/NX/etc/server.cfg

找到 SSHDPort = “22″,改为所需即可,

然后重启nx:/usr/NX/bin/nxserver –restart

然后解决权限问题,

也许你已经发现我所有命令都没用sudo或su -,对的,

这台机子有点那个,我从前人手里接过来的时候,都是用root登录的…

先不管,我也用root登录,

不过ssh和nx默认都不能用root登录,修改配置文件,

gedit /usr/NX/etc/server.cfg

找到 EnableAdministratorLogin = “0″

将”0″改为”1″,

gedit /etc/ssh/sshd_config

找到 PermitRootLogin no

将no改为yes,

重启ssh和nx,

/usr/NX/bin/nxserver –restart

/etc/init.d/ssh restart

现在应该可以用nx远程连接管理服务器了.

后来貌似又不能用了,补充两行:

nxserver –useradd root
nxserver –usercheck root

重启并连接看状态:

/usr/NX/bin/nxserver –restart
/usr/NX/bin/nxserver –status

Over

系统管理员必守的六大规则

在复杂的计算机数据中心基础设施中,这种能力可以让你通过丰富的经验和自身的知识快速而准确地发现问题之所在。这种能力只可意会,不可言传。没有人会提供和“超自然故障排除”有关的认证的。但是,那些重量级的问题解决专家都会遵守一些通用的,不成文的规则。这是我自己使用的六个规则。注意,它们适用于大多数情况,但是并不是所有情况。

1、永远不要修改服务器或网络设备的连接接口

虽然这听上去很简单,但是,令人吃惊的是,人们经常会修改他们用于连接到某个设备的网络接口的属性,这种行为的失败率很高。有时,这条规则可能是可选的,但是,如果有一种方法可以排除潜在的隐患,何乐而不为呢?如果你不得不修改这个接口,可以在这个接口上配置一个辅助IP(secondary IP)——通过另外一个设备或子网,串行控制台,KVM等来连接。如果设备放在远程的办公室里(那里没有IT职员),那么这绝对是一条真理。

2、保证总是有办法回到原点

无论何时,只要有可能的话,都要提供一种可以把问题恢复到原始状态的方法。这意味着,在对故障磁盘做任何修改以前,应该为这个故障磁盘做一个映像,备份整个目录结构(你不可能知道你以后需要哪些文件,这样可以以防万一),或者,在你胡乱摆弄一个已经出现故障的操作系统以前,应该在物理服务器上抽取出这块磁盘的RAID1阵列。当然,在虚拟机环境下,这会更加容易一些,因为你可以简单地做一个快照。

3、文档,文档,还是文档

在所有这些规则中,这条规则也许是大家最少遵守的规则了。毫无疑问,应该把一个问题和解决方法文档化。当你处在混乱状态之中的时候,你的解决方法也许并不明智。这就是说,当一个问题尘埃落定以后,要保留一份“尸检报告”,通过这份报告,你可以重新检查当时那个解决方案采取的步骤和途径。把它写下来,然后把它保存在安全的地方,最好是放到公司内部的wiki上;并且,应该备份到几个不同的地方。推荐阅读:系统管理员应该怎样高效的书写文档。

4、在IT领域,不存在魔法,但是却存在幸运

就像 Thomas Jefferson 说的那样:“我发现我工作的越努力,我就越幸运。”在电脑IT领域,也是这样的。你花费越多的时间来研究你的基础设施,关注路由器,交换机,服务器和其他设备的特定的工作条件,你的基础设施就会运行的越流畅。这些日常工作可以让你在问题的早期阶段就发现这些问题,当问题真的发生的时候,你可以更加快速地作出反应。另外,在IT领域,有很多种方法可以“制造”幸运。例如,使用一些工具,让网络设备配置的备份自动化;如果使用这种方法的话,当你的交换机发疯的时候,你可以在几分钟内恢复它,而不是几个小时。

5、在你修改每个配置文件以前,要对它们进行备份

这条规则只适用于Unix服务器和几乎各方面的配置都提供了配置文件的网络设备。在你弄坏敏感的配置以前,首先对交换机和TFTP(Trivial File Transfer Protocol)主机的配置文件进行备份。在Unix系统上,可以简单地把something.conf cp到 something.conf.orig。
在必要的时候,如果想恢复到过去那个良好的状态,只需要简单地把文件拷贝回去,然后重启那个服务就可以了。因为注册表的存在和Windows喜欢把简单的概念复杂化,所以,在Windows系统上,这通常是不可能的。即便如此,你还是可以在胡乱摆弄注册表以前,对注册表进行备份,这样的话,如果天下大乱了。你可以重新导入备份的注册表文件。记住:当你对Windows注册表进行修改的时候,服务器的生命就掌握在你的手中。

6、监控,监控,还是监控

一点点预防工作就可以省去一个月的周末加班时间。你应该对你的数据中心的方方面面进行监控,从房间的温度,机架,和服务器,到服务器进程检查,正常运行时间检查……你还应该为所有网络设备构建一个集中式的日志系统,除此之外,你还应该安装一些趋势分析工具来监控带宽利用率,温度,磁盘空间的使用率,和其他的参数。当这些参数超过正常的阀值的时候,那些监控工具应该通过必要的手段来通知你。