Wednesday, June 4, 2014

This is going to be a short post.  I am working on altering a script so that postgres will store it's log in /var/postgres/931 instead of /var/postgres/931/data. When you set up SMF so that postgres may be started as a service, the log directory does not allow full paths. Clearly the only solution to this was to usea symbolic link. Ok... so if I plan on using this script for future version of postgres how do I get the data dir path for postgres. That solution was fun to work on as it taught me more than I really wanted to know about sed (stream editor). The command is as follows:

root@mymachine:~# ps auxw | grep postgres |  sed -r 's/.* (-D) (.*) ?(-i)/\2/' | head -n1
/var/postgres/84/data
 

There isn't much to this, just a regex that gets everything in between -D and -i after output from ps has been piped in showing the paths that postgres was started with.

Enjoy!

No comments:

Post a Comment