Thread: Monitoring with pg_controldata
I am trying to monitor my replication lag with pg_controldata and it's driving me nuts. If I run pg_controldata from the command line as user postgres or root I get the following line Time of latest checkpoint: Thu 30 Jul 2009 00:36:12 NZST If I run it from the crontab I get this output Time of latest checkpoint: Wed Jul 29 23:05:34 2009 Here is the cron entity /usr/lib/postgresql/8.3/bin/pg_controldata /var/lib/postgresql/8.3/main >> /tmp/pg_standby_log What is the issue here? Some sort of a timezone problem? How do I tell it what time zone to use? Thanks.
On Wednesday 29 July 2009, Tim Uckun wrote: > > What is the issue here? Some sort of a timezone problem? How do I tell > it what time zone to use? > > Thanks. cron runs programs in a very limited environment. Things like TZ etc. are usually not set. To see what your cron sets, just run a shell script with something like #!/bin/sh env and look at the email you get with the output. Read the cron/crontab manpage. It tells you how to set environment variables for your scripts. HTH UC
O > cron runs programs in a very limited environment. Things like TZ etc. are > usually not set. To see what your cron sets, just run a shell script with > something like > > #!/bin/sh > env > > and look at the email you get with the output. > Read the cron/crontab manpage. It tells you how to set environment variables > for your scripts. Thanks for the tip. It looks like the LANG environment wasn't set and obviously pg_controldata is reliant on that. What solved it for me was to set LANG=en_GB.UTF-8 because that was the LANG setting in the postgres user env. Thanks again.