Вместо попытки использовать MAILTO
(, который всегда будет интерпретироваться как адрес электронной почты ), используйте SHELL
.
Задайте SHELL
путь к небольшому исполняемому сценарию оболочки, который запускает данную команду с выводом, направленным в файл:
#!/bin/sh
now=$(date)
/bin/sh "$@" 2>&1 | awk -v now="$now" '{ printf("[%s]\t%s\n", now, $0) }' >/tmp/cronjob.log
Здесь "$@"
будет расширен до -c
, за которым следует спецификация задания из файла crontab. Важно писать "$@"
в двойных кавычках.
В crontab используйте
SHELL=/path/to/cronrun
# rest of crontab below...
(при условии, что /path/to/cronrun
— правильный путь к этому короткому скрипту)