Cron запускает мой Python скрипт, но ничего не происходит - PullRequest
1 голос
/ 09 июля 2020

Я хочу запускать сценарий Python каждую ночь в 12:00, чтобы очистить файл csv, который в течение дня автоматически заполняется другим сценарием.

Мой файл csv code_list .csv содержимое в конце дня выглядит так:

87698
63753
19742
89876
62765
79832
# etc.

Я использую метод truncate для очистки файла csv с помощью этого скрипта csvclean.py :

import csv

filename = "/root/folder/code_list.csv"
f = open(filename, "w")
f.truncate()
f.close()

и вот мой crontab:

SHELL=/bin/bash
0 0 * * * cd /root/folder && /usr/bin/python3 ./csvclean.py

Оба файла находятся в одной папке /root/folder.

Я вижу в /var/log/syslog, что cron работает в запланированное время, но в моем файле code_list.csv ничего не происходит. Если я запустил скрипт напрямую, используя python3 csvclean.py, он отлично очистит CSV-файл.

Что я забыл?

- РЕДАКТИРОВАТЬ -

Я использовал найденный здесь метод для получения журналов. Я отредактировал свой crontab следующим образом:

*/1 * * * * cd /root/folder && /usr/bin/python3 ./csvclean.py > /root/folder/csvclean.log 2>&1

и добавил эту строку в начало csvclean.py script:

print 'starting'

Я открыл csvclean.log файл после cron, и я увидел:

/usr/bin/python3: can't open file './csvclean.py': [Errno 2] No such file or directory

Это заставило меня понять, что имя моего файла сценария Python - cleancsv.py , а не csvclean.py .

Это было у меня под глазами ...

1 Ответ

1 голос
/ 09 июля 2020

Выполните эту команду: sudo /etc/init.d/cron restart

после установки crontab демон должен быть перезапущен.

Также проверьте sys/log на предмет отслеживания проблем при запуске скрипта.

...