Akawa

ETY001的博客

svnserve命令中有一个参数是config-file参数,可以用来设置svn服务启动的时候,指定一个全局config文件,这样每个库下面的conf文件夹的配置文件就不会再生效了。对于该参数,网上鲜有介绍,基本上svn配置的文章就那么几篇,还基本上都是互相copy的。。。大家比较常见的就是下面这条命令了:

svnserve -d -r /home/svn

我们如果想用全局配置文件,那么就按下面的命令启动svn服务:

svnserve -d -r /home/svn --config-file /home/svn/svnserve.conf

另外,我没有尝试成功把配置文件放到svn目录以外的地方,也就是说我的svn库目录是/home/svn,这个目录下有N个库目录,只有当我的全局配置文件svnserve.conf,passwd,authz放到/home/svn下才生效,我放到别的目录的时候,在客户端对库进行操作的时候是报错没有指定的用户(username cannot find)。包括在svnserve.conf中设置passwd和authz的位置为其他目录也失败了。

我的笔记本是Dell Inspiron 15R Turbo 1728,一块Intel集成显卡外加一块ATI显卡。问题出现的情况是:每次启动Archlinux起来,屏幕基本上都是最暗的,偶尔会出现一次正常情况。

我装系统的时候,先装的xf86-video-intel,然后装的xf86-video-ati,其实有尝试装catalyst-dkms,但是catalyst-dkms安装的时候有个gpl跟xf86-video-intel的冲突,需要删掉,并且安装完catalyst-dkms后,重启也是起不来桌面的。。。

当时以为能装上私有驱动后,应该问题就能解决,但是后来因为catalyst-dkms安装失败,我也就放弃了。转机出现,是我在Archlinux的wiki上搜索别的资料的时候,发现了一个文章介绍Sony笔记本Archlinux的相关配置,链接:https://wiki.archlinux.org/index.php/Sony_vaio_VGN-SA/SB

这篇文章里面就提到了关于ATI独显和Intel板载显卡关闭的问题,简要的说就是要先挂载debugfs,

mount -t debugfs debugfs /sys/kernel/debug

或者用在/etc/fstab中加入
debugfs /sys/kernel/debug debugfs 0 0

我表示我的系统已经挂好了这个了,所以我直接进入下一步,加载ATI的模块,

modprobe radeon

关掉不在使用中的显卡

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

检查下设置的效果

cat /sys/kernel/debug/vgaswitcheroo/switch

结果:
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0

注意带+号的表示现在正在用的显卡,IGD就是Intel的板载显卡,DIS就是ATI的那块独显。

如果想重新打开就执行

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

其他的详情看这篇文章吧,不多说了。

再就是吐槽一下,我是最近用最新的镜像重装了下archlinux,原因是大版本变动的升级虽然升级成功了,但是有几个很纠结的小问题实在是没心情解决了,遂重装了,但是没想到这次重装后,发现又有变化就是之前的Sysvinit被systemd替换了。表示对于不会shell脚本的人来说,写一个能开机自动关掉显卡的service文件着实的蛋疼,虽然最终也算是成功了。在wiki上没有看到有关原来rc.local中开机自动执行脚本用systemd实现的方法,有知道的朋友,能否点播下我,谢啦~

vim /usr/lib/systemd/system/rc-local.service

内容如下:

[Unit]

Description=”/etc/rc.d/rc.local Compatibility”

After=network.target

[Service]

Type=forking

ExecStart=/etc/rc.d/rc.local start

TimeoutSec=0

StandardInput=tty

RemainAfterExit=yes

SysVStartPriority=99

[Install]

WantedBy=multi-user.target

启用脚本

systemctl enable rc-local.service

创建启动文件rc.local,

vim /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local

转自:http://cnodejs.org/topic/501f5d8ff767cc9a51c98165

2.x:

<code>app.helpers({ config: config, title: config.title }); app.dynamicHelpers({ //防止csrf攻击 csrf: function(req,res) { return req.session ? req.session._csrf : ''; }, req: function(req,res) { return req; }, userInfo: function(req,res){ return req.session.user; } });</code>

3.x

<code>//app.helpers() app.locals({ config: config, title: config.title }); //app.dynamicHelpers app.use(function(req, res, next){ res.locals.title = config['title'] res.locals.csrf = req.session ? req.session._csrf : ''; res.locals.req = req; res.locals.session = req.session; next(); }); app.use(app.router);</code>

用sudo apt-get install mongodb安装了mongodb后,总是启动失败,查看log日志,发现了以下错误:

1
2
3
***** SERVER RESTARTED *****

/usr/bin/mongod: symbol lookup error: /usr/bin/mongod: undefined symbol: _ZN7pcrecpp2RE4InitEPKcPKNS_10RE_OptionsE

从搜索引擎上找不到,最后,在MongoDB官网上找到一个方法又重新装了一遍就可以用了,是用的10gen编译的deb包安装的,不过貌似官方推荐源码编译安装。

具体安装10gen的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
The Ubuntu package management tool (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys. Issue the following command to import the 10gen public GPG Key:

**sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10**

Create a **/etc/apt/sources.list.d/10gen.list** file and include the following line for the 10gen repository.
**deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen**

Now issue the following command to reload your repository:
sudo apt-get update

Install Packages
Issue the following command to install the latest stable version of MongoDB:
**sudo apt-get install mongodb-10gen**

今天读完了《黑客与画家》的第一章,上次那篇读书笔记1是记录的译者写的序,一般看书我都是先看序,这里往往是一本书的精髓所在。我读书的速度依旧是很慢,即便是这一章在一年前,看过电子书版的。不得不说,即便是一年以后再看这一章,我依旧是和当年读这一章时的想法是一样的,感觉作者的一席话解释了自己脑袋中的各种为什么?

第一章讲的是书呆子为什么不受欢迎,虽然短短的十来页,但是我还是觉得,里面很多现象总结的很对,其中一点最为重要就是书呆子们其实并非是呆,而是因为对于和其他人相比,书呆子们追求的目标不同罢了。“书呆子不受欢迎的真正原因,是他们脑子里想着别的事情。他们的注意力都放在读书或者观察世界上面,而不是放在穿衣打扮、开晚会上面”。另外作者也阐述了为啥聪明的小孩在青少年时期,比如11岁到17岁,有着一生中最糟糕的人生经历,那是因为“11岁前,小孩的生活由家长主导,其他孩子的影响有限。孩子们不是不关心小学里其他同学的想法,但是后者不具有决定性影响”。在这一点上,我是深有感触,我的确是没有感到小学是痛苦,因为那时自己脑袋并没有很多东西,父母的指挥是你做事情的参照标尺,所以,小学可以用过的很幸福来形容,但是真正恶心的是从初三转学开始,我觉得我的生活就发生了很大的变化。

阅读全文 »

保罗 格雷厄姆的创业哲学,他的创业公式是:

1、搭建原型
2、上线运营(别管bug)
3、收集反馈
4、调整产品
5、成长壮大

他鼓励创业公司快速发布产品,以尽早验证创意是否可行。
一定要关注用户需要什么,这样才有办法将一个坏项目变成好项目。
创始人的素质比好的创意更重要一些。
创始成员人数最好不要超过3个。

今天开始上服务器上实战了,不得不说在虚拟机的演习跟在服务器上的实战差距还是很大的。现在说遇到的问题:

1、一共两台2U的服务器,其中一台2U机器的一个网卡貌似挂掉了,现在把心跳线合并进了另外那个RIP的网卡。其实这个网卡有问题,还是因为通过网络安装系统的时候发现的。

2、每个服务器上一共有8块硬盘,每块1个T,其中之前服务器的每块硬盘都是用过的,而我在做drbdadm create-md的时候,提示下面的错误:

`md_offset
al_offset
bm_offset
Found ext3 filesystem which uses
Device size would be truncated, which
would corrupt data and result in
‘access beyond end of device’ errors.
You need to either

  • use external meta data (recommended)
  • shrink that filesystem first
  • zero out the device (destroy the filesystem)
    Operation refused.
    Command ‘drbdmeta`

看意思是原来的分区的文件系统还存在,没法初始化成drbd设备,用下面这条命令处理下:

#dd if=/dev/zero bs=1M count=1 of=/dev/sda1; sync

然后再执行create-md,我是执行了两边才成功的,如下:

[root@node2 ~]# drbdadm create-md zentao v08 Magic number not found v07 Magic number not found v07 Magic number not found v08 Magic number not found Writing meta data... initialising activity log NOT initialized bitmap New drbd meta data block sucessfully created. [root@node2 ~]# drbdadm create-md zentao v07 Magic number not found v07 Magic number not found You want me to create a v08 style flexible-size internal meta data block. There apears to be a v08 flexible-size internal meta data block already in place on /dev/sdd1 at byte offset 1000202235904 Do you really want to overwrite the existing v08 meta-data? [need to type 'yes' to confirm] yes

Writing meta data…
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.

3、再就是我的drbd一直是secondery/unknown,更改了一下syncer的100M为10M后可以了。又出现了这个问题,发现其实是防火墙导致的节点之间通信失败。

很久木有大半夜的写技术文章了,最早可以追溯到四年前的大一上学期,在网吧,周边一圈打游戏看电影聊天的人,就我自己拿着本ASP,在敲代码。。。。

扯远了,接着昨天把heartbeat跑通后(貌似准确的来说是前天了。。。现在是16号凌晨了。。暂且就当做是15号吧o(︶︿︶)o),今天下午恶补和复习了n多的知识,比如LVM,硬盘分区之类的,然后晚上开工了,整个过程参考了这篇文章,http://linux.chinaunix.net/techdoc/database/2008/10/28/1041372.shtml。

这篇文章已经说的很详细了,只是说一下我在实现中遇到的问题和解决方法。

总的来说今天基本上没有遇到什么问题,一切很顺利,首先要说的是,我用的centos5.3,在DRBD官网上看到,centos5以上的可以用yum install drbd kmod-drbd 来安装软件和模块,瞬间就感到很幸福,但是在我实践的时候,并没有成功,提示kmod版本冲突,经过思考和观察,我试了下yum install drbd82 kmod-drbd82就成功了,应该是源里面只有8.2版本的吧。。。

貌似就这一条。。。

再就是现在还没有解决的问题就是两台机器都重启后,两台机器都处于secondary状态,不解中,感觉好像是heartbeat的haresource配置文件配置的不对,还在调试。

2:54补充:果然是haresource的问题。。。。shell命令和IP间掉了个空格。。。

最近在搞双机热备,准备用heartbeat和DRBD来实现,由于之前没有接触过,于是想先逐个研究下,然后再集成起来。

在自己本上搭了两个虚拟机,具体环境是

centos5.3系统,
一键lnmp包,
VIP:192.168.1.150,
RIP1:192.168.1.190,心跳IP1:192.168.2.190,
RIP2:192.168.1.191,心跳IP2:192.168.2.191。

从昨天晚上8点一直折腾到今天5点终于是做好了。下面就是相关的总结:

1、安装heartbeat我是直接用的yum,这个就挺好用的,也不用担心安装顺序,系统自动按顺序安装,只是注意一点,就是第一次安装的时候,一共安装3个包,第三个包才是heartbeat,但是程序会在安装第三个包的时候报错,提示hacluster用户已存在,这个时候,你直接再来一遍yum install heartbeat就安装好了。。。在这里我卡住了1个多小时,现在还没有仔细考虑是什么原因。

2、配置方面的文章,网上有很多,经过我的实验过程,我觉得这一篇还是不错的,我也是看了这一篇文章后,才知道是什么原因卡住了我10多个小时。文章地址:http://sushan.blog.51cto.com/3532080/733484

3、haresource这个配置文件,主从节点是一样的。这个之前我配错了,所以卡住了10个多小时,具体的错误表现是,主从节点都绑定了VIP。

4、如果你是先安装了一台虚拟机,并且配置好了heartbeat后,通过复制得到从节点的话,那么你需要在从节点卸载掉heartbeat,然后删除/var/lib/heartbeat目录,然后再重装heartbeat,因为uuid会有冲突。

HeartBeat安装
[root@ha ~]# yum -y install heartbeat
安装过程中会报错:
useradd: user hacluster exists
error: %pre(heartbeat-2.1.3-3.el5.centos.i386) scriptlet failed, exit status 9
error: install: %pre scriptlet failed (2), skipping heartbeat-2.1.3-3.el5.centos
退出后,再次执行:
[root@ha ~]# yum -y install heartbeat

0%