Where does the output of `at` and `cron` jobs go?
Solution 1
From the cron man page:
When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists). The children copies of cron running these processes have their name coerced to uppercase, as will be seen in the syslog and ps output.
So you should check your/root's mail, or the syslog (eg. /var/log/syslog).
Solution 2
For long-running processes it is sometimes useful to know what the output is before you get the email, I use this instead:
- Use
ps
to find the process ID of your running program (PID
below); use
lsof
to find the file the output is being written to:lsof -p PID
In the output, look for the 1u
and 2u
lines under the FD
column header.
These lines will tell you what temporary files the process output is
going into before it is sent by mail. Typically, for at
, the file is
located under /var/spool/cron/atjobs/
. Finally, display that file
and you will find your process' (current) output.
Comments
-
Michael Durrant almost 2 years
Where does standard output from
at
andcron
tasks go, given there is no screen to display to?It's not appearing in the directory the jobs were started from, nor in my home directory.
How could I actually figure this out given that I don't know how to debug or trace a background job?
-
donothingsuccessfully about 12 yearsOutput is usually sent via email.
-
Splanger about 12 yearsI recommend using mutt, "a small but very powerful text-based mail client", to read the output. It is has been in the repositories for every distro I've used.
-
-
Cédric Guillemette over 8 yearsOn my mac, after simply calling "cron" it displayed the path to the "email". In my case , it was /var/mail/<username>.
-
kapad over 4 yearsthe files under
1u
and2u
are of typeUNIX
. I'm guessing these are UNIX sockets. How do I look into the files now? -
Areza over 3 yearsWhat to do when
1u
and2u
files appear as(deleted)
(although the process itself is still running)?