У меня есть следующий Баш скрипт:выхода не собирается подавать, когда бежал как хроны
clean-tmp.sh
#!/bin/bash
tmpreaper 1h /tmp --test > ./tmpreaper.log
Когда я запускаю его в терминале с помощью ./clean-tmp.sh
, его пишет в файл ./tmpreaper.log
.
я добавил сценарий к списку хрон рабочих мест с помощью crontab -e
:
*/5 * * * * cd /home/cron-jobs && ./clean-tmp.sh
Затем я проверил журналы CRON и эта запись там каждые 5 минут:
Feb 19 00:45:01 ip-172-31-23-184 CRON[1475]: (ubuntu) CMD (cd /home/cron-jobs && ./clean-tmp.sh)
Но это уже не написав до ./tmpreaper.log
.
Что я делаю неправильно?
Вы уверены, что 'cd' преуспевает? Это место, где 'exec 2 >>/tmp/err.log; set -x; cd/home/cron-jobs &&./clean-tmp.sh' были бы полезны (или даже 'bash -x./clean-tmp.sh'). –
Запись в файл с использованием относительного пути не является отличной практикой программирования. В общем, неплохо, чтобы скрипт предположил, что его текущий рабочий каталог правильно установлен. Вы можете взглянуть на это сообщение: http://stackoverflow.com/questions/41755437/managing-log-files-created-by-cron-jobs – codeforester
Кстати, обычной причиной такого рода проблем является 'tmpreaper 'не в PATH cron. Например, если он находится в '/ usr/local/bin', это не так по умолчанию. –