Назад | Перейти на главную страницу

cron создает выходной файл, только если есть выход

У меня есть cronjob, который вызывает скрипт. Я хочу, чтобы результат был помещен в файл журнала. Проблема в том, что лог-файл создается, даже если нет вывода.

Поскольку работа выполняется раз в час, и в основном делать нечего. Я получаю много файлов размером 0 байт.

Я, вероятно, мог бы добавить в один файл журнала, но мне интересно, есть ли уловка, которую можно использовать, чтобы предотвратить создание файла журнала или удалить его, если он пуст. (Я действительно не хочу запускать второе задание cron для очистки после первого)

Сложность заключается в том, что к именам файлов журналов добавляются дата / время. Строка в crontab выглядит примерно так:

/your/script.sh config.txt > outfilepath_`date +\%Y-\%m-\%d_\%H\%M`.html 

Я думаю, это означает, что мне нужно сначала сохранить дату в переменной, а затем проверить, был ли этот файл создан / пуст. Итак, если я возьму ответ Стоуна, я получу что-то вроде:

logfile=outfilepath_`date +\%Y-\%m-\%d_\%H`; your/script.sh config.txt > $logfile; if [! -s $logfile]; then rm $logfile; fi

но я не знаю, возможно ли это внутри crontab

Можно написать примерно так:

/your/script > /your/log/file; if [ ! -s /your/log/file ]; then rm /your/log/file; fi