从postgresql-9.1服务获取LD_LIBRARY_PATH的值

问题描述:

任何人都可以请我建议我如何从postgresql-9.1服务中获得LD_LIBRARY_PATH的值,该服务使用shell脚本注册为PostgreSQL9.1安装的一部分。从postgresql-9.1服务获取LD_LIBRARY_PATH的值

我需要根据我需要旧的数据库的备份和恢复数据库中的值来获得可贵/opt/testing/bin(where pg_dump will available)

在此先感谢。

+0

如果服务正在运行,请使用'ps'查找它的pid,然后阅读'/ proc//environ'您正在查找的过程。如果启动PostgreSQL的脚本修改了它,你应该能够从那里提取变量。否则,只要依靠'env'就可以做到这一点。 – doubleud 2014-09-04 21:40:27

+0

这是堆栈溢出的主题 - 你想要超级用户或serverfault。但你也需要正确解释。你说你想要'LD_LIBRARY_PATH',但是如果你正在寻找'pg_dump',你只需要设置'PATH' env var,或者直接运行'/ opt/testing/bin/pg_dump'。所以这没有任何意义。 – 2014-09-05 01:11:07

+0

嗨craig,我想用pg_dump来备份旧的数据库。为此,我需要pg_dump的位置。这是我的意图。感谢您的回复。 – Honey 2014-09-05 05:48:06

如果每个人都能正确理解我的问题,这就是我正在寻找的答案。最后我自己也分享了答案。

path=`grep -oE "LD_LIBRARY_PATH=\S*:" /etc/init.d/postgresql-9.1` 
    echo "path:"$path 
    path_array=($path) 
    ld_lib_path=${path_array[0]} 
    echo "ld_lib_path : "$ld_lib_path 
    ld_lib_path1=${ld_lib_path#*=} 
    ld_lib_path2=${ld_lib_path1%:*} 
    echo "ld_lib_path2 : "$ld_lib_path2 
    cd $ld_lib_path2 
    cd ../bin 

现在我们可以使用pg_dump,pg_dumpall来备份旧的DataBase。