Я хочу запускать сценарий 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 .
Это было у меня под глазами ...