Как найти функцию `-printf `для вывода в stderr

Вместо попытки использовать 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— правильный путь к этому короткому скрипту)

0
02.04.2021, 16:37
0 ответов

Теги

Похожие вопросы