2014-09-04 2 views
0

LD_LIBRARY_PATH 값은 쉘 스크립트를 사용하여 PostgreSQL9.1 installaion의 일부로 등록 된 postgresql-9.1 서비스에서 어떻게 얻을 수 있는지 제안 해주십시오.postgresql-9.1 서비스에서 LD_LIBRARY_PATH 값 가져 오기

는 내가 옛날 DB의 백업을 수행하고 데이터베이스를 재설정해야 할 값을 바탕으로 /opt/testing/bin(where pg_dump will available)

까지 값을 얻을 필요가있다.

감사의 말 전진.

+0

서비스가 실행중인 경우,'ps'를 사용하여 서비스의 PID를 검색 한 다음 찾고 있던 프로세스에 대해'/ proc//environ'을 읽으십시오. PostgreSQL을 시작하는 스크립트에 의해 수정 된 경우 거기에서 변수를 추출 할 수 있어야합니다. 그렇지 않으면 단지'env'에 의존하는 것이 트릭을해야합니다. – doubleud

+0

스택 오버 플로우에 대한 주제입니다. 수퍼 유저 또는 serverfault가 필요합니다. 그러나 이것을 제대로 설명 할 필요가 있습니다. 'LD_LIBRARY_PATH'를 원하지만'pg_dump'를 찾으려면'PATH' env var을 설정하거나'/ opt/testing/bin/pg_dump'를 직접 실행하면됩니다. 그래서 이것은 말이되지 않습니다. –

+0

안녕하세요 craig, pg_dump를 사용하여 이전 DB를 백업하고 싶습니다. 그 때문에 pg_dump의 위치가 필요합니다. 저의 의도는 여기에 있습니다. 답장을 보내 주셔서 감사합니다. – Honey

답변

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를 백업 할 수 있습니다.