Question. In a chained cron job like this:
sshfs . . . && /usr/bin/rsync . . . | /bin/mail -s . . . && . . .
Is there anyway to get a failure message from the first part to be emailed or logged?
Given the resolution of this problem I gather that sshfs must not have been found and therefore I would expect an error to be reported somewhere. The chained commands evidently interfered with the propagation of this error which would have immediately identified the source of the problem. Is it possible to get errors from the individual parts of such chained commands forwarded to an email address, or logged in the system log, or both?
At Tue, 7 Dec 2010 10:21:27 -0500 (EST) CentOS mailing list centos@centos.org wrote:
Question. In a chained cron job like this:
sshfs . . . && /usr/bin/rsync . . . | /bin/mail -s . . . && . . .
Is there anyway to get a failure message from the first part to be emailed or logged?
Given the resolution of this problem I gather that sshfs must not have been found and therefore I would expect an error to be reported somewhere. The chained commands evidently interfered with the propagation of this error which would have immediately identified the source of the problem. Is it possible to get errors from the individual parts of such chained commands forwarded to an email address, or logged in the system log, or both?
It is probably easiest to create a shell script with all of the chaining there and use shell script flow control to deal with mailing/logging errors:
#!/bin/sh -e sshfs . . . /usr/bin/rsync . . . 2>&1 | /bin/mail -s . . . ..
Or something like that (eg using '|| error-handling/reporting code' instead of -e).
James B. Byrne wrote:
Question. In a chained cron job like this:
sshfs . . . && /usr/bin/rsync . . . | /bin/mail -s . . . && . . .
Is there anyway to get a failure message from the first part to be emailed or logged?
Given the resolution of this problem I gather that sshfs must not have been found and therefore I would expect an error to be reported somewhere. The chained commands evidently interfered with the propagation of this error which would have immediately identified the source of the problem. Is it possible to get errors from the individual parts of such chained commands forwarded to an email address, or logged in the system log, or both?
If you're going to get that complicated, why not just write a short shell script, and run that via cron. Then you can set your environment explicitly (as opposed to in your crontab, which some folks like to do). Also, if you want logs from each piece, you could then break it up, and dump/read stuff from temp files.
mark
On 12/7/10 9:21 AM, James B. Byrne wrote:
Question. In a chained cron job like this:
sshfs . . .&& /usr/bin/rsync . . . | /bin/mail -s . . .&& . . .
Is there anyway to get a failure message from the first part to be emailed or logged?
Given the resolution of this problem I gather that sshfs must not have been found and therefore I would expect an error to be reported somewhere. The chained commands evidently interfered with the propagation of this error which would have immediately identified the source of the problem. Is it possible to get errors from the individual parts of such chained commands forwarded to an email address, or logged in the system log, or both?
Cron should default to mailing anything sent to stdout or stderr to the owner of the job if you don't redirect it elsewhere.