
У меня есть скрипт развертывания, и в нем я пытаюсь добавить задание cron. Это код, который я использую, который я нашел на stackoverflow. Я использую Debian 8.
# ADD CRON
crontab -l > mycron
echo "10 * * * * cd /var/www/test/ && ./test" >> mycron
crontab mycron
rm mycron
При выполнении этих команд я получаю ответ:no crontab for root
Что я делаю не так, и как мне сделать так, чтобы я мог добавить это задание cron с помощью скрипта bash? Спасибо.
решение1
Похоже, что (а) файл crontab пользователя root изначально пуст и (б) опция -e
установлена в оболочке.
Если файл crontab пользователя пуст, то crontab -l
происходит выход со статусом 1.
Если оболочка запущена с -e
опцией, то она немедленно завершит работу в случае возникновения ошибки (определяется как выход с ненулевым статусом).
Найдите errexit
в выводе , echo $SHELLOPTS
чтобы проверить этот параметр. Отключите его в текущей оболочке с помощью set +e
.