行云无鸣

2011-11-24

在AIX5.3上安装redis

Filed under: 乱语 — 标签:, — hellyguo @ 13:21

[root@host/]uname -a
AIX margin 3 5 00C2F1DE4C00

http://www.perzl.org下载需要的软件包
安装命令如下:
rpm -ivh bash-4.2-5.aix5.1.ppc.rpm
rpm -ivh expat-2.0.1-3.aix5.1.ppc.rpm
rpm -ivh expat-devel-2.0.1-3.aix5.1.ppc.rpm
rpm -ivh gettext-0.17-1.aix5.1.ppc.rpm --nodeps
rpm -ivh glib2-2.28.6-1.aix5.1.ppc.rpm
rpm -ivh gettext-devel-0.17-1.aix5.1.ppc.rpm
rpm -ivh info-4.13a-2.aix5.1.ppc.rpm
rpm -ivh gmp-5.0.2-1.aix5.1.ppc.rpm
rpm -ivh gmp-devel-5.0.2-1.aix5.1.ppc.rpm
rpm -ivh popt-1.16-1.aix5.1.ppc.rpm
rpm -ivh popt-devel-1.16-1.aix5.1.ppc.rpm
rpm -ivh coreutils-8.14-1.aix5.1.ppc.rpm
rpm -ivh logrotate-3.7.9-2.aix5.1.ppc.rpm
rpm -ivh redis-2.2.11-1.aix5.2.ppc.rpm

2010-09-19

如何确认使用端口的进程(转自http://www.aixchina.net/?8199/viewspace-21054)

Filed under: 乱语 — 标签:, , , , — hellyguo @ 00:35

环境:(产品AIX,平台pSeries)

问题描述: 本文介绍了如何确认正在使用某端口的进程.

解答:

应用程序有时会因为要使用的端口被其他程序使用,而无法正常启动,这时我们需要查看正在使用此端口的进程信息.
下面介绍了两个方法:

1. lsof方法:
> 参考文档: http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1811994C16000
> 下载lsof: ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/lsof (下载对相应版本的)
> # lsof -i | grep
-> 从结果中可以得到PID -> # ps -ef | grep PID -> 确定进程

2. netstat/rmsock方法:
> 以端口25举例:
(1) # netstat -Aan | grep 25
获得25号端口的PCB(protocol control block),且查看协议为tcp. (输出信息中第一列即是PCB)
例如:
# netstat -Aan |grep 25
f100070000d373b0 tcp4 0 0 *.25 *.* LISTEN
f100070000d25600 udp 0 0 *.* *.*
f100070000d25400 udp 0 0 *.* *.*
f100070000d25000 udp 0 0 *.* *.*
f100070000d25c00 udp 0 0 127.255.255.255.12 *.*
f100070000d2d200 udp 0 0 10.10.10.255.123 *.*
f100070000d25a00 udp4 0 0 *.514 *.*
f100070000d25200 udp4 0 0 *.517 *.*

(2) 如果是tcp连接,那么# rmsock tcpcb
如果是udp连接,那么# rmsock inpcb

# rmsock f100070000d373b0 tcpcb
The socket 0xd37008 is being held by proccess 213096 (sendmail).
结果显示25号端口正在被sendmail进程使用,PID为213096.

备注:

1.lsof不是自带命令,需要安装

2.rmsock需要用root权限才能执行

2008-11-06

系统运行中报:Resource temporarily unavailable

Filed under: 未分类 — 标签:, , , — hellyguo @ 16:43

2008-11-06 12:49:50 [ERROR] [org.springframework.transaction.CannotCreateTransactionException][Could not open JDBC Connection for
transaction; nested exception is java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153094144)(ERR=12500)
(ERROR_STACK=(ERROR=(CODE=12500)(EMFI=4))(ERROR=(CODE=12540)(EMFI=4))(ERROR=(CODE=12560)(EMFI=4))(ERROR=(CODE=510)(EMFI=4))(ERROR=(B
UF=’IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable’))))DSRA0010E: SQL 状态 = null,错误代码 = 17,002DSRA0010E:
SQL 状态 = null,错误代码 = 17,002]

初步判断是系统资源不足,查看系统:

#ulimit -a
time(seconds) unlimited
file(blocks) 2000
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000

果然,打开文件数有限制
修改之

#ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000

2008-05-22

iconv转换编码

Filed under: 未分类 — 标签:, , , , , , — hellyguo @ 10:38

DB2输出的数据,需要格式化输出后合并入XML中。由于输出的文档编码为ASCII,而XML的编码为UTF-8,故需转码。

可惜转码需要知道原编码,否则没法转。

做了个绝的,来了个一锅端:

#!/bin/sh

iconv -l|awk “{print \”iconv -f \” \$1 \” -t UTF-8 $1>\” \$1 \”.conv\”}”|/bin/sh
用法:

./list_iconv filename

与在Windows下转好的文件比较一下大小,最相近的一个,基本就是了。

sed/awk初步学习

Filed under: 未分类 — 标签:, , , — hellyguo @ 10:28

使用了DB2,在数据输出方面相对较弱,没有ORACLE在输出时那么多的设置。故需采用shell脚本进行加工。因此,学习了sed和awk。

很强大!

通过sed去除DB2的首尾输出,再用awk进行数据格式化。
db2 select * from table_a|sed -f db2.sed|awk -f table_a.awk>data

AIX下强制卸下某一进程对DB2的访问

Filed under: 未分类 — 标签:, , — hellyguo @ 01:09

db2 list application for database <dbname> show detail

根据输出的agent id

db2 force application \(<agent id>\)

2008-05-07

将ActiveMQ4.1.1通过JSW注册为AIX后台服务

Filed under: 未分类 — 标签:, , , , , — hellyguo @ 19:01

执行
#./activmq start
报权限不足:

Starting ActiveMQ Broker…
./activemq: /usr/apache-activemq-4.1.1/bin/linux/wrapper: 0403-006 Execute permission denied.

至http://wrapper.tanukisoftware.org/doc/english/download.jsp下载了最新的wrapper,更新了linux下的wrapper文件,再执行,成功

2008-01-29

AIX下启动CDE

Filed under: 未分类 — 标签:, — hellyguo @ 17:09

如何启动CDE
a、在AIX启动时自动启动CDE。使用root用户登录,并在命令行中执行:
#/usr/dt/bin/dtconfig -e

b、在命令行中启动CDE:
#/etc/rc.dt;exit

c、确认CDE已经启动:
#ps -ef |grep dtlogin
如果您看到dtlogin进程在运行,则说明CDE已经启动。

借鉴:http://bbs.chinaunix.net/viewthread.php?tid=785017

%d 博主赞过: