In this post you can find information how to deal with problems related to CRON jobs:

  • how to find logs
  • identify errors
  • (CRON) info (No MTA installed, discarding output)

If you need more info about CRON scheduler:

Step #1: Where is the CRON log in Linux Mint

By default the logs in Ubuntu and Linux Mint from CRON execution can be found in: /var/log/syslog. In this log file there are many different log messages so best way to extract CRON related messages is by:

grep CRON /var/log/syslog

output:

Mar 15 09:00:01 vanx-machine CRON[7205]: (root) CMD (timeshift --check --scripted)
Mar 15 09:12:01 vanx-machine CRON[8128]: (vanx) CMD (/home/vanx/cron/seoanalyzer.sh)
Mar 15 09:17:01 vanx-machine CRON[8638]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 15 09:30:01 vanx-machine CRON[9508]: (vanx) CMD (DISPLAY=:0 /home/vanx/cron/weekly.sh)
Mar 15 09:32:29 vanx-machine CRON[9507]: (CRON) info (No MTA installed, discarding output)

This command will output all recent executions. If the result is empty most probably nothing was scheduled. Then you can check by:

crontab -e

Step #2: Reading the logs

Successful execution is logged as:

Mar 15 09:12:01 vanx-machine CRON[8128]: (vanx) CMD (/home/user/cron/seoanalyzer.sh)

You can find next information:

  • execution date - 15th of March
  • execution time - 09:12:01
  • machine - vanx-machine
  • user - vanx
  • command - /home/user/cron/seoanalyzer.sh

In case of errors you will see something like(unless you have MTA installed):

Mar 15 09:32:29 vanx-machine CRON[9507]: (CRON) info (No MTA installed, discarding output)

This error will be covered in next section.

Step #3: (CRON) info (No MTA installed, discarding output)

From the output above we notice this message:

(CRON) info (No MTA installed, discarding output)

The message indicates two things:

  • the last job execution failed for some reason
  • MTA (Mail Transfer Agent) is not installed (which is the case for Linux Mint and Ubuntu)

The solution of No MTA installed, discarding output is:

  1. installation of postfix - as local setup - by using next commands:
sudo aptitude install postfix
  1. Choose Local during setup
  2. Select name - i.e. - your user name
  3. Access the logs(you will need to rerun the failing job):
sudo tail -f /var/mail/vanx

By last command you can find detailed information about the errors and output of the CRON scripts if any.

Example:

  File "/home/vanx/Software/Tensorflow/environments/venv36/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 966, in find_element
    'value': value})['value']
  File "/home/vanx/Software/Tensorflow/environments/venv36/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 320, in execute
    self.error_handler.check_response(response)
  File "/home/vanx/Software/Tensorflow/environments/venv36/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"galaxyIframe"}

Step #4: Redirect CRON job output(no installation of MTA)

If you:

  • can't install MTA
  • don't like the idea of MTA
  • installation of additional software on your machine
  • or want to analyse single CRON job

then you can redirect the output of your CRON job by command next steps:

  1. Edit the CRON schedule file
crontab -e
  1. Find the command for which you like to redirect output: 0 3 * * * /cmd/to/run.sh
  2. Redirect the output by this command
0 3 * * * /cmd/to/run.sh >> /var/log/cmd_to_run_log_file.log
  1. Run the command again and check what happened by:
sudo tail -f -n 50 /var/log/cmd_to_run_log_file.log

Where command tail will product 50 last lines in the given file.

Note 1: Use use if the issues are related to root CRON - sudo crontab -e
Note 2: You can redirect output by 0 3 * * * cmd >> /var/log/cmd_to_run_log_file.log 2>&1