Да, это должно работать нормально, при условии, что когда вы говорите "все работает нормально в командной строке", вы буквально вставляете ту же команду из записи crontab. Вещи, чтобы проверить:
- Работает ли демон cron? (Запустить
pidof cron
)
- Если он работает, попробуйте перезапустить его. (Зависит от вашего вида Unix, но что-то вроде
service cron restart
или /etc/init.d/cron restart
)
- Если ваш сценарий по-прежнему не запускается, проверьте все в
/var/log
для соответствующего вывода - конкретный файл зависит от конфигурации вашего системного журнала , но /var/log/messages
и /var/log/syslog
- хорошие варианты, если /var/log/cron
не существует.
Примечание. Для выполнения большинства этих задач вам нужно быть пользователем root
- если у вас нет доступа, вам нужно будет поговорить с человеком, который управляет машиной.
Кроме того, когда вы говорите, что открываете файл в /tmp
, это, вероятно, самая надежная вещь, которую вы можете сделать, чтобы убедиться, что он работает. В самом начале вашего скрипта (до импорта или чего-либо еще) добавьте:
with open("/tmp/testfile", "a") as fd:
fd.write("I am running\n")
Вы также можете проверить, правильно ли установлен ваш crontab - он должен быть помещен во что-то вроде /var/spool/cron/crontabs
(это в Ubuntu Linux, он может отличаться в разных версиях Unix). Там вы должны увидеть файл с вашим именем пользователя, который должен содержать вашу запись.
Наконец, если вы действительно впадаете в отчаяние, вы можете strace
процесс cron, чтобы посмотреть, что он делает:
sudo strace -f -p `pidof cron`
Вам не нужно слишком беспокоиться о специфике, но вы должны делать что-то каждую минуту. Если нет, то что-то идет не так.