From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | anj patnaik <patna73(at)gmail(dot)com>, Melvin Davidson <melvin6925(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: error messages not getting logged when running script from cron |
Date: | 2015-11-24 23:24:41 |
Message-ID: | 5654F1B9.8070207@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 11/23/2015 04:33 PM, anj patnaik wrote:
> I am seeing a bizarre behavior. The command works fine when called
> directly from prompt, but when invoked via cron, there is no output nor
> mail.
>
> This works fine:
> script 2>&1 | tee /tmp/ff ; mailx -s "email" -myemail(at)company(dot)com
> <mailto:myemail(at)company(dot)com> < /tmp/ff
>
> Now, I place the identical line in crontab file and the output file
> /tmp/ff does not get generated.
Does the script run?
Remember cron has a limited environment. In you actual crontab line do
you have a complete path to 'script' or is the path in the crontab PATH.
To get your above code to run I had to do something like:
cat cron_txt.txt 2>&1 | tee /tmp/ff ; mailx -s "email" aklaver </tmp/ff
Note, no - before the email address(in this case a local address).
If you are doing this locally have yoy though about setting MAILTO in
the crontab and let cron do the mailing. Probably have to use pg_restore
-v ... if you are not already.
>
> Inside script, i am running a pg_restore which dumps output to stdout.
> The usage of tee is the only way to cause it to go into a file.
>
> Any idea here? Thanks
>
> On Mon, Nov 23, 2015 at 3:29 PM, Melvin Davidson <melvin6925(at)gmail(dot)com
> <mailto:melvin6925(at)gmail(dot)com>> wrote:
>
> You could also try tweaking the following attached backup script.
> Caution, I wrote this quickly from a skeleton script and has not
> been tested.
>
> On Mon, Nov 23, 2015 at 3:21 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us
> <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> wrote:
>
> anj patnaik <patna73(at)gmail(dot)com <mailto:patna73(at)gmail(dot)com>> writes:
> > My cron tab entry:
>
> > 0 20 * * * db_backup.sh 1> /dev/null 2>&1 | mail -s "backup cron"
> >myemail(at)comp(dot)com <mailto:myemail(at)comp(dot)com>
>
> > I am re-directing stderr to stdout and then sending that to email.
>
> Uh, read it again: you're redirecting stdout to /dev/null and then
> redirecting stderr to go where stdout goes. So all output is
> going to the bit bucket, not the pipe.
>
> regards, tom lane
>
>
> --
> Sent via pgsql-general mailing list
> (pgsql-general(at)postgresql(dot)org <mailto:pgsql-general(at)postgresql(dot)org>)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
>
>
>
> --
> *Melvin Davidson*
> I reserve the right to fantasize. Whether or not you
> wish to share my fantasy is entirely up to you.
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Oleg Bartunov | 2015-11-24 23:36:48 | Re: JSON path wild cards? |
Previous Message | John R Pierce | 2015-11-24 21:37:36 | Re: "trust" authentication in pg_hba.conf |