'ломаю голову над cronjobs последние несколько часов. Я прочитал документацию и примеры. Я понимаю основы и концепции, но ничего не заработало. Поэтому я был бы признателен за помощь с этой дилеммой для нубов.
Конечная цель — запланировать выполнение функции django каждый день. Прежде чем я зайду так далеко, я хочу знать, что я могу запланировать запуск любого старого скрипта, сначала один раз, а затем на регулярной основе.
Итак, я хочу: 1) Написать простой скрипт (возможно, bash-скрипт), который позволит мне определить, действительно ли он был выполнен успешно или же он не удался. 2) Запланировать запуск этого скрипта в начале часа
Я попробовал написать bash-скрипт, который просто выводил бы какой-то текст в терминал:
#!/bin/bash
echo "The script ran"
Затем я переместил это в файл .txt
MAILTO = *****.******@gmail.com
05 * * * * /home/vadmin/development/test.sh
Но ничего не произошло. Я уверен, что я это сделал.многочто-то не так. С чего мне начать, чтобы все это исправить?
решение1
Я не знаю, сможете ли вы таким образом увидеть вывод cron на экране.
Держу пари, если ты поставишь
echo "the script ran" >> /home/vadmin/file.txt
В своей работе проверьте, что cron запущен и crontab установлен правильно (как предлагалось в других ответах), тогда все будет работать так, как и ожидалось.
Однако указанный вами cron не будет запускаться каждый день, он будет запускаться в 5 раз каждый час.
решение2
Ваш cron daemon действительно запущен? Проверьте таблицу процессов.
Также может возникнуть проблема с отправкой результатов по электронной почте — проверьте журналы crond и вашего локального почтового сервера.
решение3
Строки, которые вы перетащили в файл .txt, нужно добавить вкронтаб.
Лучшие практики рекомендуют не редактировать файл crontab напрямую, а использовать команду crontab -e
, которая откроет файл crontab в редакторе, позволит вам отредактировать/сохранить его, проверить на наличие синтаксических ошибок и безопасно сохранить.
Также, особенность cron, которая может существовать в вашей системе, заключается в том, что если последняя строка в файле не является пустой, cron игнорирует предыдущую строку. Убедитесь, что вы добавили хотя бы одну пустую строку в конец вашего crontab.