1

如何一次在 ggsci 中执行两个命令?

我想使用登录dblogin,然后在同一个 shell 中运行该info all命令。

echo "dblogin userid abc password 123" | echo "info all"

这个管子不行。

4

3 回答 3

4

尝试这样的事情:

echo obey "obey_cmds.txt" | ./ggsci

您的服从文件包含dbloginandinfo all命令的位置。

我在我的脚本中做了类似的事情,脚本动态生成服从文件,然后执行它。

例如,给定这个服从文件,obey_cmds.txt

dblogin userid ggsadmin password s3cr3t
info all

执行如下所示:

$ echo obey /apps/ggsadmin/goldengate/monitoring/scripts/obey_cmds.txt | $GG_HOME/ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
AIX 5L, ppc, 64bit (optimized), Oracle 11g on Apr 23 2012 05:03:51

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.



GGSCI (aixorad02) 1>
GGSCI (aixorad02) 2> dblogin userid ggsadmin password s3cr3t

Successfully logged into database.

GGSCI (aixorad02) 3> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     EQBTTC      00:00:00      00:00:01
EXTRACT     RUNNING     PQBTTC      00:00:00      00:00:01


GGSCI (aixorad02) 4> exit
于 2014-11-21T19:00:56.087 回答
3

你有什么理由需要在一条线上这样做吗?

此处的文档对我来说很好

ggs> ggsci <<HERE
> DBLOGIN USERID abc, PASSWORD 123
> INFO ALL
> HERE

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.6_02 16874194 OGGCORE_11.2.1.0.7_PLATFORMS_130530.0600.1_FBO
Solaris, sparc, 64bit (optimized), Oracle 11g on Jun  5 2013 01:15:20

Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.



GGSCI (foo01) 1>
Successfully logged into database.

GGSCI (foo01) 2>
Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    ABENDED     PERF1REP    00:00:00      01:54:59


GGSCI (foo01) 3>
ggs>
于 2013-10-04T19:32:58.527 回答
0

派对迟到了,但在我的盘子里,并在稍微更宽的范围内使用了类似的东西:

-- 示例脚本片段

pushd .
cd $GG_HOME
./ggsci -s <<EOF>>gg.out
start manager
start extract *
start rep *
send *,status
EOF
gg_retval=$?
popd

然后通过 retval 返回或您的输出文件进行处理。显然,你可以做各种各样的事情。小心剪断。我只是将示例推入 - 可能无法提供您正在寻找的返回值或输出文件。

哦,离别镜头:重复 ggsci 任务的方便别名

alias cdgg='pushd . ; cd $GG_HOME'
alias gg='cdgg;./ggsci;popd'
  • 以上所有内容都在 sh/bash..
于 2016-07-01T20:58:42.247 回答