如何获取core文件堆栈脚本

利用脚本,获取堆栈信息,方法如下:

sh ./core_stack /opt/gnode/server/bin/gbased opt/gnode/userdata/gbase/core.xxx  > file

文件名请记录节点信息,对应的core文件pid,时间等信息,以方便对照,例如bt_node17_pid_20160531.txt。

core_stack.sh
#!/bin/sh
gdb –quiet -nx $1 $2 <<EOF 2>&1
set width 0
set height 0
set pagination no
thread apply all bt
EOF

如何在gbase命令行工具中调用linux系统命令

gbase命令行工具中支持通过system关键字的方式调用操作系统命令,用于更改当前路径、查看系统变量、查看文本内容。
命令格式为:system linux_os_cmd

例如:

gbase> system gcadmin

  CLUSTER STATE:  ACTIVED
  CLUSTER MODE:   NORMAL

+==========================================================================================================================+
|                                                   GCLUSTER INFORMATION                                                   |
+==========================================================================================================================+
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+
| rowid | nodename |    IpAddress    | sgname | dpname | gcware  |  gnode  | gcluster | syncserver | datastate | nodestate |
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+
|   1   |   node1  | 192.168.105.210 |  sg01  |   n1   | Online  |  OPEN   |   OPEN   |    OPEN    |  [0]      |  [0]      |
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+
|   2   |   node2  | 192.168.105.211 |  sg01  |   n2   | Online  |  OPEN   |   OPEN   |    OPEN    |  [0]      |  [0]      |
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+
|   3   |   node3  | 192.168.105.212 |  sg02  |   n3   | Online  |  OPEN   |   OPEN   |    OPEN    |  [1]      |  [0]      |
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+
|   4   |   node4  | 192.168.105.213 |  sg02  |   n4   | Online  |  OPEN   |   OPEN   |    OPEN    |  [0]      |  [0]      |
+-------+----------+-----------------+--------+--------+---------+---------+----------+------------+-----------+-----------+

gbase> system pwd
/home/gbase
gbase> system cat tab1.txt1
1,,2015-03-19 17:51:31
2,abc,2015-03-19 17:51:43

如何防止sh脚本执行进程丢失

为了防止sh脚本执行进程丢失,可以编写sh脚本判断进程是否还存在。

#!/bin/sh
StartLoader(){
processnum=`ps -ef|grep Loader.sh|grep -v 'grep'|wc -l`
#echo "processnum=" $processnum
if [ $processnum -eq 0 ]
then
sh /home/gbase/gbloader/Loader.sh 
fi
}

main(){
StartLoader
}

processnum=`ps -ef|grep gbased|grep -v 'grep'|wc -l`
if [ $processnum -eq 1 ]
then
main
fi