Category Archives: 运维

nginx fancyindex插件严重影响效率

补记: nginx的fancyindex插件能提供定制性更好的index页面(插件许久没有更新,有一个小的bug,含有冒号的url不能正确生成,稍稍改下代码就行了)。不过经过一段时间高负载的使用后,发现页面载入延迟比较高,使用ab局域网压力测试的结果(nginx 0.7.64)表明fancyindex的效率只有原生autoindex的37.5%。

Posted in nginx, 运维 | Tagged , | 4 Comments

cfengine3获取本机ip

项目需要获取本机ip,在文档中没有找到相应的内建变量,而cfengine2是有的,于是上邮件列表问。 答案是有这么个变量的:sys.ipv4 sys.ipv4[eth0] sys.ipv4 is mentioned a couple of times en passent in the cf3 reference, see for example http://www.cfengine.org/manuals/cf3-reference.html#Function-splayclass. I tried a simple report: bundle agent dev{ reports: solaris:: “my ip is ${sys.ipv4}” } which gave the expected result. … Continue reading

Posted in cfengine | Tagged , | Leave a comment

关于linux中ulimit中的max user processes

今天在邮件列表里有人问,为什么一个多线程的python程序运行后,再运行shell程序会出现: -bash: fork: retry: Resource temporarily unavailable ulimit -a显示对max user processes进行了限制,然而从字面上看这是对进程数的限制啊…… 翻手册最后在man 2 setrlimit中找到: RLIMIT_NPROC The maximum number of processes (or, more precisely on Linux, threads) that can be created for the real user ID of the calling process. Upon … Continue reading

Posted in 运维 | Tagged , , | 1 Comment

phpwind5.3的系统邮件被QQ邮箱拒收

今天有同学反应说用论坛找回密码功能QQ邮箱收不到邮件,于是研究了一番,在日志里发现如下记录: 0BD38B4AB6: to=<xxx@qq.com>, relay=mx0.qq.com[222.202.96.161]:25, delay=0.53, delays=0.01/0/0.23/0.29, dsn=5.0.0, status=bounced (host mx0.qq.com[222.202.96.161] said: 550 Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.html (in reply to end of DATA command)) 然后在记录指明的连接里看了下原因,竟然是被怀疑成垃圾邮件了,难道是因为我没设置域名的MX记录么?于是在服务器上手动发了封邮件,发现能收到。于是转而怀疑内容,经过替换法后最终定位在/template/wind/lang_email.php中的email_additional变量,把它的内容改成别的就行了。 PS:中间的小插曲就是系统总能成功发邮件,论坛确不行,后来才想到是权限问题,ssmtp是750的权限……

Posted in 运维 | Leave a comment

nforce630的网卡驱动问题

工作室有两台服务器用的是nforce630主板板载的千兆网卡,然而系统装好后却有个怪现象:第一次启动正常,第二次及随后的启动网卡就failed了,检查dmesg发现一个warning,大概意思就是“网卡mac地址无效,系统随机生成”,后来检差/etc/udev/rules.d/70-persistent-net.rules发现果然多了一个mac地址,这就是导致网卡无法地洞的原因。 上网搜索得出结论如下: 由于历史原因,nvida的一些网卡地址是反序存在芯片里的,相应的驱动在读取的时候会将其反过来,然而在新的芯片里网卡地址的存储已经正常,可是相应的驱动并没有改过来,所以会导致读取到的mac地址无效。 解决办法: 网上有一些通过修改驱动达到目的的,然而在我们的服务器上怎么都不成功,最后我想了一个治标不治本的办法,将/etc/udev/rules.d/75-persistent-net-generator.rules这个用来生成mac得在的脚本从目录中移除去,然后在/etc/udev/rules.d/70-persistent-net.rules自己指定一个地址就好了:)

Posted in 运维 | Leave a comment

终于告一段落了……

从开学到现在这段时间可真够忙的:rsync与mysql日志共同构成的备份系统,cacti监控系统,防盗链系统,vpn系统等的搭建和完善,再加上服务器的日常维护以及去新校区开会……最后就是想干的事情都没做多少,想看的书越堆越多,不过今天终于把这些都做的差不多了,今后主要就是转入维护阶段了,问题应该会少很多,也就可以变回coder了,为了9月的招聘会,努力。

Posted in 运维 | Leave a comment

备忘录

1.Proftpd的用户名查找顺序取决于编译时的选项,不过可以用如下形式来指定: AuthOrder mod_sql.c mod_auth_unix.c 具体见www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-Authentication.html

Posted in 运维 | Leave a comment

使用pvmove的注意事项

因为一些原因,要从一个四块硬盘组成的Lvm中拿出两块来,在执行的过程中遇到了一些问题:pvmove命令用来把使用的pv移动到其他空余的pv中,需要内核的dm_mirror的支持,然而2.6.22内核中的dm_mirror有bug,执行会出错,建议升级到6.2.23。

Posted in 运维 | Leave a comment

对张微波先生的《proftpd学习笔记》的一点补充

对张微波先生的《proftpd学习笔记》的一点补充: 1.数据库表中最好加入ID列来做主键,相应的要修改配置文件: [code lang="plain" gutter="false"]SQLNamedQuery insert-quota-tally INSERT %{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7} ftpquotatallies[/code] 改为: [code lang="plain" gutter="false"]SQLNamedQuery insert-quota-tally INSERT NULL, %{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7} ftpquotatallies[/code] 2.在ftpuser表中插入虚拟用户时,homedir一定要指明,同时一定要在ftpgroup表中插入相应用户名。 3.如果启用了Quota,则需在ftpquotalimits表里插入相应值,否则ftpquotatallies表不会记录流量。 4.ftpquotalimits表中的per_session设为true时,只判断本次传输流量与配额的关系;为false时,则判断累计流量与配额关系。 5.Proftpd是根据ftpquotalimits表和ftpquotatallies表中的数据差来计算配额余量的。 一些疑问: 1.ftpquotalimits表中的limit_type对于下载似乎不起作用。 2.Proftpd对虚拟用户应该是映射到本地实际用户的,但是不明白为何Limit域对映射的本地用户的限制对虚拟用户不起作用。 3.Proftpd对于ftpquotatallies表中流量的更新似乎有bug,如果客户端在传输过程中因为非正常原因中断(比如:死机、网络中断),Proftpd不会更新流量。

Posted in 运维 | Leave a comment