存档

‘只谈技术’ 分类的存档

Linux下批量杀掉 包含某个关键字的 程序进程

2012年2月9日 没有评论

有时候因为一些情况,需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进程),这个时候我们需要运用 ps, grep, cut 和 kill 一起操作。

ok,下面给出具体的参考:

ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

运行这条命令将会杀掉所有含有关键字”LOCAL=NO”的进程,是不是很方便?

下面将这条命令作一下简单说明:

管道符”|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

“ps -ef” 是linux里查看所有进程的命令。这时检索出的进程将作为下一条命令”grep LOCAL=NO”的输入。

“grep LOCAL=NO” 的输出结果是,所有含有关键字”LOCAL=NO”的进程。

“grep -v grep” 是在列出的进程中去除含有关键字”grep”的进程。

“cut -c 9-15″ 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -9″ 中的 xargs 命令是用来把前面命令的输出结果(PID)作为”kill -9″命令的参数,并执行该命令。”kill -9″会强行杀掉指定进程。

其它类似的情况,只需要修改”grep LOCAL=NO”中的关键字部分就可以了。

另一种方法,使用awk

ps x|grep gas|grep -v grep |awk ‘{print $1}’|xargs kill -9

转自:http://www.cnblogs.com/lichkingct/archive/2010/08/27/1810463.html

分类: linux相关 标签: ,

child pid XXXX exit signal Segmentation fault (11)的一个解决办法

2012年1月8日 没有评论

最近在测试一个虚拟主机管理软件LuManager2.0,用的centos6 64位的系统装完进入管理界面 始终出错 firefox打开页面一片空白,看apache的日志是

child pid XXXX exit signal Segmentation fault (11)

手工传个phpinfo进去倒是可以执行的,这个错误造成的原因很多,多半是和内存啊模块之类的有关,仔细看了看apache和php的配置,发现php里面启用了eaccelerator ,关掉重启apache后解决了。

分类: php相关 标签: ,

VMware ESX/ESXi 使用NETAPP存储 FCP Partner Path Misconfigured 报错处理

2011年10月27日 没有评论

VMware ESX/ESXi 使用NETAPP存储 FCP Partner Path Misconfigured 报错处理

在VMware ESX/ESXi 使用NETAPP存储时,存在多路径访问存储lun的情况下如果配置不当极易引起报错:
[hostname: scsitarget.partnerPath.misconfigured:error]: FCP Partner Path Misconfigured - Host I/O access through a non-primary and non-optimal path was detected.

这个主要是因为ESX主机在访问lun时使用了非主路径造成的,就如下图这种情况:

从上图来看我们可以看到这个lun在主机上实际是有2个访问路径的,一个是通过lun所在的机头访问的主路径,另一个是Partner机头的备用路径。
如果是更加高可用的采用2个机头各自使用2个光纤交叉连接至2个交换机的方式,那么每个lun在主机上对应的访问路径将会有4个,其中2个是主路径,2个是备用路径。

那么在ESX中是如何来选择多路径的呢,这里也介绍下ESX的多路径选择机制。
首先ESX会判断存储的类型,主要是A/P主-被、A/A主-主、ALUA主-被和非对称主-主这几种。
对应不同的存储类型ESX会使用不同的默认路径选择方式:

最近使用(VMW_PSP_MRU):选择最近用于访问指定设备的路径。如果此路径不可用,则会切换到替代路径并在该新路径可用时继续使用它。MRU是主-被阵列(A/P- Active/Passive)的默认路径策略。
固定(VMW_PSP_FIXED):使用指定首选路径(如果已配置)。否则,它将使用在系统引导时间发现的第一个工作路径。如果主机不能使用首选路径,则它会选择随机替代可用路径。一旦首选路径可用,主机便会恢复到首选路径。“固定”是主-主阵列(A/A – Symmetric Active/Acivie)的默认路径策略。
VMW_PSP_FIXED_AP:将“固定”功能扩展到主动-被动阵列和非对称主-主(ALUA – Asymmetric Active/Active)阵列。
循环(VMW_PSP_RR) :使用路径选择算法轮流选择所有可用的活动路径,并在路径之间启用负载平衡。

根据我管理的系统中2台NETAPP的存储在ESX中均被识别为:VMW_SATP_DEFAULT_AA,就是A/A主-主类型,所以他默认使用的是 固定(VMW_PSP_FIXED)。
那么问题就在这里了,由于固定(VMW_PSP_FIXED)方式的路径选择,ESX将会选用第一个发现的路径作为首选路径来使用,但是有些时候这往往不是主路径,所以就导致了Host I/O access through a non-primary and non-optimal path was detected.的报错。
这个时候就需要手工调整首选路径了,那么如何来确定什么路径才是主路径呢?

1.首选确定目标lun所在的机头
这个我想不用多说了

2.连上目标lun所在的机头确认FC Nodename和Portname

FAS2050A> fcp show adapters
Slot: 0a
Description: Fibre Channel Target Adapter 0a (Dual-channel, QLogic 2432 (2462) rev. 2)
Adapter Type: Local
Status: ONLINE
FC Nodename: 50:0a:09:80:88:8c:82:35 (500a0980888c8235)
FC Portname: 50:0a:09:81:88:8c:82:35 (500a0981888c8235)
Standby: No

Slot: 0b
Description: Fibre Channel Target Adapter 0b (Dual-channel, QLogic 2432 (2462) rev. 2)
Adapter Type: Local
Status: ONLINE
FC Nodename: 50:0a:09:80:88:8c:82:35 (500a0980888c8235)
FC Portname: 50:0a:09:82:88:8c:82:35 (500a0982888c8235)
Standby: No

根据上例返回的信息,这个机头有2个hba卡,在esx看到的目标路径就是Nodename Portname,这个的2个目标路径就是
50:0a:09:80:88:8c:82:35 50:0a:09:81:88:8c:82:35
50:0a:09:80:88:8c:82:35 50:0a:09:82:88:8c:82:35

3.知道了目标路径后打开esx存储适配器手工指定目标lun的首选路径


本图由于有4个路径分表是其中有2个目标路径对应lun所在机头的2个hba卡,可以根据实际情况手工指定不同的hba卡分流流量。

如何检测调整的效果
1. lun stats -o 查看Partner Ops 和 Partner KBytes 字段,可以直观的以lun列表的形式查看,如果是调整后可以使用lun stats -z清空统计数据。
2. sysstat -b 1 查看Partner字段,可以直观的以实时监控的形式查看。

如果上述字段为非0那就说明有Host I/O access through a non-primary and non-optimal path的情况。

cisco stp相关配置

2011年10月27日 没有评论

这里不去介绍相关知识了,网上一搜一大堆。写这篇博客只是为了记录下解决我单位混乱二层网络管理无从下手的一些心得。
交换机配置一向不是我的强项,这次调整stp完全出于无奈,我们单位的网络期初是从1台借用的二层交换机开始的,逐步的添加扩展直到今天位于3个机房、13台交换机的规模、9个网段,由于我懒,加上随意配ip习惯,导致了这种局面,要起三层必须等于是要把网络这层全部铲了从起炉灶,伤不起啊,前车之鉴啊,各位规划网络初期就一定要注意啊!

我们这个大二层从划分来讲主要就是3大块,1,中心机房 2,电信机房 3,办公室。
故事(事故)是这样开始的,由于单位搬了新大楼,而新大楼的网络全部使用的是h3c产品,我们在14楼使用的是我们单位独立的网络,但是平时也有其他一些楼层需要用我们的网段跑些业务,所以在14楼我们在我们网络的cisco交换机与大楼本身网络的h3c交换机之间做了互通并在大楼网络里面起了个我们的vlan,这样就能利用大楼的网络方便的将某些端口划到分到我们的vlan里面就能使用我们的出口和网络了。但是问题出现了,在楼道里cisco和h3c互联接线的那刻,大楼网络从楼道的h3c交换机开始一直瘫倒核心。后来把我们楼道里面那台cisco的stp关了才算了事。cisco的stp是只能针对vlan关的,像我们那种傻瓜用法的等于要关掉整个交换机的stp,这很不爽。调整双方stp协议对接也很不现实,大楼网络不会为了我们一个小网络去做调整。所以我只能想其他办法了。

网上看了几天资料了解了,看完才知道,原来二层网络也是需要管理维护的。

1.根桥(root bridge)
二层网络首先要确定一个根桥(root bridge),虽然什么都不配交换机之间也能自己协商出来一个,但是有些情况下那往往不是你所希望的,而且随着后期交换机的加入还会发生变化。
如何确定根桥(root bridge):

3750#show spanning-tree

VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24577
             Address     04c5.a488.c400
             Cost        4
             Port 3 (GigabitEthernet1/0/3)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)
             Address     04c5.a488.c400
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/3          Root FWD 4         128.3    P2p
Gi1/0/4          Desg FWD 19        128.4    P2p

沿着这个返回端口在途径的交换机上面重复 show spanning-tree 直到出现

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    24577
             Address     04c5.a488.c400
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)
             Address     04c5.a488.c400
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

这就是你二层网络的 根桥(root bridge)。

2.如何手工指定根桥(root bridge)
3750#conf t
3750(config)#spanning-tree vlan 1 root primary

3.根保护(Root Guard)
根保护(Root Guard)的作用是防止指定端口下级网络环境中出现根桥(root bridge),虽然你通过手工可以指定根桥(root bridge)但是他的优先级(Priority)是固定为24577的(数值越低优先级越高),一旦下级网络中有手工指定的优先级更高的交换机出现那么它就会占据根桥(root bridge)。这时候就需要配置根保护(Root Guard)防止这种情况。
3750#conf t
3750(config)#interface gigabitEthernet1/0/26
3750(config-if)#spanning-tree bpduguard enable

端口配置了根保护(Root Guard)后,一旦接收到优先级比现有根更高的BPDU包这个端口就会被转为Block状态,直到不再接受到BPDU包或者优先级高的BPDU包。

3.BPDU过滤(BPDU Filtering)
BPDU过滤(BPDU Filtering)顾名思义,过滤BPDU。端口接受到任何的BPDU包一律到此为止,不在往端口上转发。一般配合PortFast用于连接主机的端口。
3750#conf t
3750(config)#interface gigabitEthernet1/0/26
3750(config-if)#spanning-tree bpdufilter enable

一旦端口启用BPDU过滤(BPDU Filtering)要注意不能出现环路,不然就真的瘫了。而且BPDU过滤(BPDU Filtering)优先级比根保护(Root Guard)高所以同时启用2个功能的话根保护(Root Guard)是不起作用的。

至于上面我单位遇到的问题,我测试了一下在手工指定根桥(root bridge)后再在14楼cisco上于h3c互联的端口启用BPDU过滤(BPDU Filtering),同时关闭h3c相应端口的stp后在打开cisco交换机的stp,网络就正常了。

centos6下挂载nfs

2011年10月7日 没有评论

其实和以前的centos5没啥区别,只不过centos的安装是选mini的还真够mini的,啥都要自己yum。这不连nfs都默认不装了。
mount -t nfs 192.168.1.1:/nfs1 /mnt/nfs
直接提示

mount: wrong fs type, bad option, bad superblock on 192.168.1.1:/nfs1,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

需要安装下相关的软件包
yum -y install nfs-utils nfs-utils-lib

这时再尝试依然会出错

mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

原因是rpcbind没启动
chkconfig –list看见是默认启动的,应该是刚装后没启动,手工启动下。
/etc/rc.d/init.d/rpcbind start
然后再
mount -t nfs 192.168.1.1:/nfs1 /mnt/nfs 就正常了

分类: linux相关, 只谈技术 标签: , ,

关闭centos6的ipv6

2011年10月7日 没有评论

新增文件 /etc/modprobe.d/ipv6-off.conf  内容:

alias net-pf-10 off
alias ipv6 off

编辑 /etc/sysconfig/network 增加内容:

NETWORKING_IPV6=no

关闭自动启动ip6tables

chkconfig ip6tables off
重启即可

分类: linux相关 标签: ,

克隆centos6虚拟机后网络无法启动问题解决

2011年10月7日 1 条评论

在克隆centos6的虚拟机后会发现启动网络的时候有报错

Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization.

查看配置文件发现并没有像centos5那样克隆后会把原先的ifcfg-eth0备份成ifcfg-eth0.bak然后生成新的初始化的ifcfg-eth0

上网查了查资料,原来centos6会对mac地址和网卡设备名进行绑定,克隆前网卡的mac地址已经绑定了eth0,在克隆后生成的新的mac地址被顺延绑定到了eth1,但是我们又没有对应eth1

的配置文件所以启动就提示出错了。

只需要编辑

vi /etc/udev/rules.d/70-persistent-net.rules

将原来eth0那行删除,把新生成的eth1那行里面的eth1改成eth0 然后修改或者删除下配置文件里面的mac地址和uuid和最后重启下即可。

分类: linux相关, 只谈技术 标签:

Varnish 3.0的vcl处理流程图

2011年9月27日 没有评论

最近在尝试的用varnish,资料太少,偶然看见一个vcl的处理流程图,哪来分享下

另外可以安装个  GraphViz 用以下命令可以导出你所用版本的
### for postscript output
$ sed -n ‘/^DOT/s///p’ varnish-cache/bin/varnishd/cache_center.c | dot -Tps > /tmp/varnish-flow.ps
### for pdf output
$ sed -n ‘/^DOT/s///p’ varnish-cache/bin/varnishd/cache_center.c | dot -Tpdf > /tmp/varnish-flow.pdf

image

分类: 只谈技术, 软件相关 标签:

总结一些netapp管理中的误区把,省的初学者绕弯路。

2011年9月13日 没有评论

1.建立lun的时候lun name最好就直接写明白lun的内容。

我之前是这样建lun的

lun create -s 201g -t linux -o noreserve /vol/volb1/web1/lun1
lun comment /vol/volb1/web1/lun1 web1

本来想想这样子已经够清楚了,没想到最近在用lun_top监控lun的读写情况是发现他就仅仅用了lun name,而不是path。结果就是重头到尾的排序都是lun1
解决方法:lun move /vol/volb1/web1/lun1 /vol/volb1/web1/lun.web1

未完待整理

分类: 硬件相关 标签:

更改VMware Update Manager下载文件夹

2011年7月12日 没有评论

先停掉 Update Manager服务
找到Update Manager安装文件夹,64位系统注意在Program Files (x86)下面找
在安装文件夹内找到vci-integrity.xml 先备份
然后打开vci-integrity.xml
查找<patchStore>D:\VMware Update Manager\Data\</patchStore>
把当中的路径改成新路径保存,然后启动Update Manager服务即可

分类: vmware相关 标签: