111回忆录
上个月,带鱼陈建来北京公干,于是我两在呷哺呷哺小吃了一下,一下子又回到了10多年前的时光。发现自己对于那个时光居然还有详细的记录,今日有空就特地贴出来一下。
记得报名那天天气不错,似乎大家都是早早的来到了学校,可能是都想见见新同学到底长什么样子。办好手续就来到了寝室,号码不错很好记“111”。进去一 看,好像人都到齐了一样,铺好床铺,就由陈建带头聊开了。印象里寝室里第一个有深刻记忆的就是他了。数了数都到了6个人了,还缺一个嘛。聊了好久也没见这 个高人到来。大家估计他可能不来读了。这个人就是潘伟。寝室里扫荡了一下居然还搜出一副乒乓球拍,大家一合计就去那时候的汇海大厦买了一只还是两只乒乓球 就来到学校里开打了。由于大家都是南汇的,所以说话就特别亲切的。一路上是有说有笑有打有闹。终于打好乒乓球回到寝室看到了神秘的潘伟同学。第二个有深刻 记忆的人就是潘伟了。不仅仅是他迟到,还有就是那副让我感觉很好笑的眼镜。晚上吃过晚饭,不知道是谁提议要夜游卫校,这次出了“风头”的就是陈涛了。在卫 校试验楼的第一声惨叫就是来自这位老兄了。看到身体标本也没这样夸张的啊。大家活动了一天也都累了,于是都躺床上聊天呢。聊天内容我记得不清楚了,而且我 是很早就睡着了,所以我什么都不知道了哦。不知道哪位老兄那天晚上失眠的就来说说好了。
接 下来第一个星期每天除了开会就是玩了。开学第一个星期就这样过去了,这期间又对申晓青和陶德峰熟悉了。这个是因为打乒乓球的缘故,晓青打乒乓只会老爷球, 不过也不是一般的老爷球,他也经常打的像陶德峰这样的高手疲于奔命。打乒乓球最高手的就是陶德峰了,真TMD是高手高手高高手,经常是我们6个人打他一 个。好像这里还少了个人哦,这个人要下篇,本来想放这里的,但是感觉放那篇里更能突出一下。
现在看来,卫校的伙食还是不错的,至 少从性价比上来看,价格便宜量又足。哪像现在吃8两饭跟在卫校吃半斤差不多。真TMD是半斤8两。寝室里吃饭最快就要属黄涛同学了,每次我还刚吃了1/4 了,他就全部消灭干净了。此人真不懂得细嚼慢咽的道理。不过现在在大学里他吃饭就不怎么快了。记得有段时间吃饭的时候经常用饭卡来作弊。一张饭卡两个人 刷,爽~~~~~ 不过这其中要属黄平华技术最差劲了,每次我都有种他要被抓的感觉。别看孙东兵那副老实巴交的样子,其实这个他是高手中的高手,经常可以装的若无其事的样 子。最夸张一次就是寝室9人用2张饭卡去买早饭,当然受害对象是老卡罗斯。不知道时候食堂的汤就要收费了,导致的结果就是那时侯8个人喝一碗汤就,可能那 个汤拿手里太烫了的缘故。导致的结果就是每次吃饭我都会浪费一些,实在是干的吃不下去了。
除了前面已经说过的乒乓球,卫校里面值得玩的地 方可真不多了。也就一个所谓的足球场和篮球场。也不清楚什么时候寝室里有了个足球,好像是班级里买的。于是只要操场是干的,那上面总有我们的身影。渐渐地 大家也都买好了自己的球衣。放一起简直就是多国部队。黄涛的克罗地亚,潘伟的曼联,我的荷兰。还有几位简直就是来收集球衣的。陶德峰的球衣我居然能经常在 我的床上发现诶,你说他的球衣多不多啊。每天我们都玩的很疯狂。记得有几天我们都是早上4:30起床去大操场上疯玩。四对四或者三对三也很好玩。那时候总 有跑不完的体力,不像现在,哎………… 我们寝室踢球感觉晓青最厉害,要技术有技术,要速度有速度,不过弱点也明显,大家也都看到了,身体太单薄了。陶德峰和黄涛是那种技术型的,相对而言陶德峰 跑的更快点,而黄涛则更有大局观。剩下我和潘伟还有黄平华就是属于捣浆糊的一类。还少个人吧,对了就是陈建和陈涛啊。
陈涛是个牛人啊,用我们老师的说法就是“原来我也是棵咸菜啊!”这人学什么都快。所以他实力在我们三人之上也不奇怪。陈建没办法了,由于一些原因也只好做守门员了,不过我们也经常换守门员当,谁累了就去当守门员。孙东兵我感觉最大的特点就是身大
各种域名跳转方式
一个是使用bind的view功能。
这个首先就需要定义一个ACL列表,然后在name.conf中include一下就可以了。Acl定义的格式如下:
acl "company"{ 1.1.1.1/32; 2.2.2.2/32; };
每行定义记得用分号结尾就行。
下面这个是named.conf的配置。View也就是这里进行配置完成的。记得所有的zone必须在view中。
options { directory "/usr/local/bind/var"; }; include "/usr/local/bind/var/company_acl.conf"; view "view_company"{ match-clients { company; }; #这里的company就是你前面acl中定义的acl名字 zone "abc.com" { type master; file "abc.com.company"; allow-update { none; }; }; zone "." in { type hint; file "named.root"; }; zone "0.0.127.in-addr.arpa" in { type master; file "empty"; }; }; view "view_any"{ match-clients { any; }; zone "abc.com" { type master; file "abc.com.ns"; allow-update { none; }; }; zone "." in { type hint; file "named.root"; }; zone "0.0.127.in-addr.arpa" in { type master; file "empty"; }; };
这些定义完成之后就是添加zone记录了。
下面这个是view_company的实例,其他类似就成。
crontab无法运行三解
我们经常可以发现某个shell程序手动运行的是完全正常的,但是放到crontab中却没有定时运行。这个时候我们可以查看下/var/log/cron这个日志文件看看你的应用程序是否被准时调用了。
如果在日志文件中我们没有发现这个应用程序执行的相关日志,那估计你是在crontab中把shell程序路径给写错了。这个时候你就得检查一下路径问题了。
还有一种情况是发现日志当中也有执行的信息,但是我们找不到运行之后的结果。这个时候我一般碰到的就是环境变量的问题。
解决环境变量问题首先可以输入export看下自己的环境变量,如果这里没有,那可以在shell程序头部增加```c
source /etc/profile
最近由于涉及到得shell程序比较多,这些shell本来是在crontab中能够正常执行的,但是在系统重装后这些程序却都不执行了。而系统的环境变量是相同的,这让我想到了是不是crontab自己有一个环境变量。
搜索了一遍果然发现crontab自己的环境变量设置。```c
vim /etc/crontab
``` 文件中我们就可以看到PATH的设置,这个就是crontab自己的环境变量了。汗死啊!
nginx单一端口域名转发
对于后端是同一端口多域名转发的nginx proxy。在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发。
这个是因为默认
1 | proxy_set_header Host $proxy_host; |
这样就等于前端输入域名后到nginx这里直接转换成IP进行转发了。
于是我们需要修改proxy_set_header的参数
1 | proxy_set_header Host $http_host; |
记录一次数据恢复过程
本周由于机器迁移,结果一台迁移后发现很多服务不能正常启动,用户登录也是login后会快速的logout。第一反应是文件系统损坏了。 但是首要任务还是要进入系统,于是我使劲的回忆着以前是否有相同的现象发生过,突然想起来以前在madhouse的时候一台内网freebsd机器也出现过类似的问题。那次文件的问题是tcsh出现了问题,后来改成sh后进入系统后重新安装了tcsh就好了,但是至于是什么原因,应该是就是文件系统在重启的时候给损坏了。 于是这次我想用同样的方式来进行,但是进入单用户模式后更改root的shell在登录发现还是同样的情况。那看来估计是硬盘损坏了,于是用了Livecd上的磁盘检测工具进行检测,但是时间太长就放弃了。 这个服务器不能启动对于内网测试来说是重大的打击,上面所有静态文件和数据库都在上面呢,还有邮件和dns服务呢。没有办法,没有任何备份,于是只能一点点从公网上进行恢复下来,这个几乎花了我一天多的时间全都在整这个事情。那块硬盘就交给专业数据恢复公司进行恢复了。本来说好当天就可以的,结果给我弄了2天还没好,于是一狠心就要回来自己弄了。 要说这些专业数据恢复公司也就只能恢复恢复windows下的数据,而对于Linux下的分区基本也算是新手。 星期五一早硬盘回来了,网上搜索了会。 首先是把硬盘挂在到一个Linux系统,我自己是UBUNTU,所以直接挂上启动机器就行。这个时候要注意硬盘的启动顺序,这个在新的BIOS里都可以自己设定,但是一些老的机器的BIOS可能都得靠硬盘跳线来完成启动顺序的选择了,具体可以参考硬盘上的说明。 进入系统后先不要进行mount,我们先用fsck对分区进行扫描修复。
1 | fsck -y /dev/sdb1 |
这里的sdb1就是我那块坏掉的硬盘的根分区。如果你不能确定的话直接用
1 | fdisk -l |
来进行查看就行了。 接着就进行一次模拟分区
1 | mkfs.ext3 -n /dev/sda1 |
网站稳定性高于一切
关于办网站的,稳定性是高于一切的标准。无法保存好客户的数据那是天大的罪孽。
我在05年曾经在一个叫blogcup的网站上写BLOG,经常写,所以回复和文章都挺多的,结果有一天突然跟我说这个网站挂了,关闭了,于是我的那些BLOG也就打水漂了。从此我就再也不在小网站上留下数据了,blog也就搬迁到wordpress.com上了,虽然老是需要翻墙,虽然这样看的人就少了,但是至少我的数据很安全。wordpress.com有 7个loadbalance以及每个loadbalance后面那么realserver,这样我的数据等于保留了几十份了起码。
fanfou是国内一家模仿twitter的网站,是王兴开的,六四事件的时候挂了一段时间,那至少也显示正在维护中。可现在倒好,直接该页无法显示了。看来我上面那些数据估计是找不回来了。难道还真要我最后搬迁到twitter上去吗? 中国真的最终目的是建立一个中华局域网吗? 那样看来是真的要逼大家都去移民了。fanfou挂了,还好国内还有一个网站叫jiwai的,那就继续凑合着用吧。等哪天最终迁移到twitter吧。还好当初在fanfou上开通了fanfou到twitter,现在jiwai上也开通了jiwai到twitter的功能。
我可不想我的那么多数据毁于一旦。
如何让urchin继续免费试用
urchin免费试用才1个月。过期了我的urchin,难道就不用了? 难道就真去买了序列号了?
这urchin是装在我们自己的服务器上的,难道就真没办法免费继续试用了? 于是找了下urchin的安装目录,楞是没找到相关的注册信息,那就一定是保存在数据库中的了。把数据库到处后搜索了下那个序列号,还真给找到了。
那就需要重新安装下urchin,安装方法之前已经有说过了,很容易的。这次安装主要是为了重新申请serial code而进行的。所以要选择不同的安装目录和启动端口。 这样安装完成后就按正常申请到试用序列号。通过数据库我们可以可以看到下列条目。主要内容是ucgl_serial:和ucgl_license: 这2行(经囚囚网首席DBA刘大牛提醒)。然后把这2行通过update在原来的urchin数据库中,那原来的urchin数据库就可以继续免费试用1个月了。不过最后还是得说记得操作前都做好备份,无论是urchin目录还是urchin数据库。
1 |
HPC服务器要点
最近听了一次马路遥朋友的讲座,他的主题就是HPC,以下内容就是根据他的讲座整理而成的。
因为涉及到高可用计算,所以服务器与服务器之间的连接速度是很重要的。是选择千兆还是万兆还是infiniband,个人感觉还是选择万兆吧。毕竟延迟小是明摆着的事情。
服务器系统的安装也是一个问题,如何迅速的安装系统呢? 用kickstart?可这个只能redhat系统下使用啊。马兄说了他使用的主要是SystemImage,和syncbased这2种方式。
如果用kickstart来安装系统,那要是每个机器需要修改的配置不同的话那可以用php/cgi的方式自定义各种ks.cfg
如何选择合适的系统,马兄由于习惯redhat的系统所以选择了centos,但是其实一些新的发行版还是真是不错,比如gentoo和ubuntu这2个,首先是内核新,其次是文件系统可选择余地大。
对于HPC来说选择一个合适的软件来进行任务管理和分配系统资源是很重要的,主要有以下几种
1 SGC: sun出品,稳定性优秀
2 openPBS,Torque 这个稳定性稍差点
3 L$F, 这个是商业软件,应该稳定性也非常优秀。
而对于这样一个庞大的系统和服务器集群做好监控是非常重要的,监控软件主要有以下几种:
1 ganglia
2 cacti
3 nagios
个人是最喜欢最后一种,客户端可供自定义的多。而前面2种就是基于snmp协议的,在内网中使用还是非常不错的选择。
管理软件,所谓的管理软件其实就是可以一次操作需要的服务器
1 pdsh 这个是多服务器管理
2 mussh 这个可以允许本地脚本在远程执行,这个应该是个不错的功能。不知道远程跟本地是通过什么进行连接的
3 cssh 这个是基于图形界面的,就好象在一个界面中开多个终端一样。这个曾经在redhat中使用过,可以自定义各种组和成员。
但是我觉得windows一些客户端也能完成上面的工作,比如xshell这样的工具,这样也可以自定义组和成员,也能一次操作对多个服务器进行生效。
既然是集群那时间同步是非常重要的,所以还要建立ntp服务器。
集群中所有服务器的认证也是非常头疼的,还好我们有NIS和openLDAP.
NIS我曾经在公司内部使用过,感觉需要在客户端上要修改挺多东西,而且不同Linux发行版本还修改的不同。openLDAP还没用过,但是听说非常好用,而且还不光能做服务器登录的认证还能做email认证等等。
在集群中不光有计算的服务器,还必须要有文件服务器,这个选择就很重要了
1 NFS: 常用,但是性能不怎么样,特别是client超过10个以上更是不行,同时不能支持对文件同时进行修改。于是衍生出了clusterFS, 这个就非常多了。
2 FressNAS: 基于FreeBSD操作系统的
3 openFilter: 基于Linux系统的
4 sun Lustre: 可以进行400台机器同时读写,这个太牛了。。。。
5 Redhat GFS: 这个不怎么好用,后面还得跟上SAN存储才行,这样成本就大了,除非你用netbsd实现SAN
6 PVFS/PVFS2
shell常用资料(备查)
While的使用
while read line do mysql ab -e "insert into filter values (null,'$line','xxxxxxxx','xxxxxxxx',1,8,1,1,188,'abc')" done = '"$sunday"%' and time >files/blog_we ek_num done fi done
上面做了2次for语句,第一次表示i从1-7,而第二次a是从1-99.上面第一个for语句是为了查询今天是否为星期天而产生的。