cron error message are sent to the
mail account of the user that is running the
mail at the command line to see the messages. For a list of
mail commands, see man mail.
You should be getting mail with an error message something to the effect of:
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
As for you command and why it's not working, it's because the "%" sign is a "newline" character, meaning that it tells the shell to "go to the next line." So, after it encounters the first "%" it goes to the next line and it never sees the rest of the command. This is confirmed by the "unexpected EOF while looking for the matching ' " '(double quote).
The local man page for crontab (
man crontab)is quite sparce with details and I am speculating it's because
cron has been deprecated for
launchd1. However, the crontab manpage from developer.apple.com explains it
The "sixth" field (the rest of the line) specifies the command to be
run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input. The command can optionally be prefixed by "
@AppleNotOnBattery" to tell cron not to run the command when functioning on battery power. For example, the "sixth" field when using this option would appear something like
"@AppleNotOnBattery /usr/bin/touch /tmp/foo"
So, what you need to do, is "escape" the "%" character with a backslash (\) so that it tells it to interpret it literally.
Your command should be:
0/5 * * * * /bin/date "+\%Y-\%m-\%d \%H:\%M:\%S" >> /tmp/log.txt
man crontab: (Darwin note: Although cron(8) and crontab(5) are officially supported under Darwin, their functionality has been absorbed into launchd(8), which provides a more flexible way of automatically executing commands. See launchctl(1) for more information.)