2014-09-04 78 views
0

任何人都可以請我建議我如何從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

回答

0

如果每個人都能正確理解我的問題,這就是我正在尋找的答案。最後我自己也分享了答案。

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。