寻觅生命中的那一片浅草......

文章属于类别 Linux

好用的autoexpect

工作中需要用expect来解决一些交互问题,但对expect又不熟悉

幸好同事介绍了autoexpect,它会把你的操作录制成脚本

使用方法是

/usr/bin/autoexpect  你的命令

然后它就会把它录制下来, 存在当前目录scripts.exp

开启线程安全模式下的php-fpm与eaccelerator冲突造成段错误(Segmentation fault)

PHP采用php-fpm管理cgi,启动时,如果有加载eaccelerator,就会报Segmentation fault

但端口可以正常起来
程序也可以正常的跑,但看着这个错 ,就是觉得不爽,就像解决它
如果想知道怎么定位是eaccelerator导致的
参考下
用gdb分析段错误(Segmentation fault)
网上找了些资料,终于找到解决办法
原来是我们开启了PHP的线程安全模式,参数是 configure –enable-maintainer-zts
网上说是EA不能在线程安全模式下很好地工作导致的

解决,configure时去掉 –enable-maintainer-zts就OK了

用gdb分析段错误(Segmentation fault)

开始前,先看下这篇文章,(猛击此处) Redhat Linux下如何生成core dump文件

看完后,开工
vi /root/.bash_profile
加入ulimit -S -c unlimited > /dev/null 2>&1
保存退出,重新加载配置
source /root/.bash_profile

经研究发现,只要把
/usr/local/php/bin/php-cgi –fpm –fpm-config /usr/local/php/etc/php-fpm.conf
放到脚本里都会报
Segmentation fault

vi /root/test.sh
添加
/usr/local/php/bin/php-cgi –fpm –fpm-config /usr/local/php/etc/php-fpm.conf

cd /root
sh test.sh
这是它会报Segmentation fault,并在/root下产生一个core.28522文件,这个文件名后面的数字是随机的
现在我们来看下core.28522里面到底是什么内容,需要用到gdb这个工具

yum -y install gdb

gdb使用的方法是
gdb 产生core时执行的命令 core文件

gdb /usr/local/php/bin/php-cgi core.28522

我们在最后会看到
Core was generated by `/usr/local/php/bin/php-cgi –fpm –fpm-config /usr/local/php/etc/php-fpm.conf’.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f895e2df0b8 in eaccelerator_clean_shutdown ()
from /usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so

由此,我们定位到是EA导致整个段错误的

查看nginx,apache,mysql,php编译参数

有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法

nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/0.6.32

built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)

configure arguments: –user=www –group=www –prefix=/usr/local/nginx/ –with-http_stub_status_module –with-openssl=/usr/local/openssl

apache编译参数:
# cat /usr/local/apache2/build/config.nice
#! /bin/sh

#

# Created by configure

“./configure” \

“–prefix=/usr/local/apache2” \

“–with-included-apr” \

“–enable-so” \

“–enable-deflate=shared” \

“–enable-expires=shared” \

“–enable-rewrite=shared” \

“–enable-static-support” \

“–disable-userdir” \

“$@”

php编译参数:

# /usr/local/php/bin/php -i |grep configure

Configure Command => ‘./configure’ ‘–prefix=/usr/local/php’ ‘–with-apxs2=/usr/local/apache2/bin/apxs’ ‘–with-config-file-path=/usr/local/php/etc’ ‘–with-mysql=/usr/local/mysql’ ‘–with-libxml-dir=/usr/local/libxml2/bin’ ‘–with-gd=/usr/local/gd2’ ‘–with-jpeg-dir’ ‘–with-png-dir’ ‘–with-bz2’ ‘–with-xmlrpc’ ‘–with-freetype-dir’ ‘–with-zlib-dir’

mysql编译参数:

# cat “/usr/local/mysql/bin/mysqlbug”|grep configure

# This is set by configure

CONFIGURE_LINE=”./configure ‘–prefix=/usr/local/mysql’ ‘–localstatedir=/var/lib/mysql’ ‘–with-comment=Source’ ‘–with-server-suffix=-H863’ ‘–with-mysqld-user=mysql’ ‘–without-debug’ ‘–with-big-tables’ ‘–with-charset=gbk’ ‘–with-collation=gbk_chinese_ci’ ‘–with-extra-charsets=all’ ‘–with-pthread’ ‘–enable-static’ ‘–enable-thread-safe-client’ ‘–with-client-ldflags=-all-static’ ‘–with-mysqld-ldflags=-all-static’ ‘–enable-assembler’ ‘–without-isam’ ‘–without-innodb’ ‘–without-ndb-debug'”

转载自:http://hi.baidu.com/xi4oyu/blog/item/8a0e1ed020e81adb562c8452.html

Linux下根据模块名查看网卡驱动版本

例如我们要查看博通网卡的驱动版本,如果该机器上刚好是博通的网卡,最简单的方法就是
ethtool -i eth0

但如果我们所查看的机器用的不是博通的网卡,则可以通过以下方法查看
我们知道博通网卡的驱动文件名叫bnx2.ko
我们查找下bnx2.ko的位置
updatedb
locate bnx2.ko
结果如下
/lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
查看驱动详细情况
modinfo /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
以下信息中,version记录就是我们的网卡驱动版本,是2.0.8-j15

filename: /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/bnx2.ko
firmware: bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw
firmware: bnx2/bnx2-rv2p-09-5.0.0.j10.fw
firmware: bnx2/bnx2-mips-09-5.0.0.j15.fw
firmware: bnx2/bnx2-rv2p-06-5.0.0.j3.fw
firmware: bnx2/bnx2-mips-06-5.0.0.j6.fw
version: 2.0.8-j15
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
author: Michael Chan <mchan@broadcom.com>
srcversion: 8CDA41B3E0DF70A112FBA80
alias: pci:v000014E4d0000163Csv*sd*bc*sc*i*
alias: pci:v000014E4d0000163Bsv*sd*bc*sc*i*
alias: pci:v000014E4d0000163Asv*sd*bc*sc*i*
alias: pci:v000014E4d00001639sv*sd*bc*sc*i*
alias: pci:v000014E4d000016ACsv*sd*bc*sc*i*
alias: pci:v000014E4d000016AAsv*sd*bc*sc*i*
alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*
alias: pci:v000014E4d0000164Csv*sd*bc*sc*i*
alias: pci:v000014E4d0000164Asv*sd*bc*sc*i*
alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*
alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*
depends:
vermagic: 2.6.32-71.el6.x86_64 SMP mod_unload modversions
parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int)

2025年九月
« 5月    
1234567
891011121314
15161718192021
22232425262728
2930