Khi tôi thực hiện kịch bản python của tôi từ dòng lệnh tôi không có vấn đề như vậy:Crontab sẽ không chạy python script
[rv @ med240-183 db] $ python formatdb.py
[rv @ med240 -183 db] $
Khi tôi cố gắng sử dụng crontab để chạy các script mỗi nửa đêm tôi nhận được một loạt các lỗi:
import: unable to open X server `' @ import.c/ImportImageCommand/367.
/home/rv/ncbi-blast-2.2.23+/db/formatdb.py: line 2: from: command not found
/home/rv/ncbi-blast-2.2.23+/db/formatdb.py: line 3: from: command not found
import: unable to open X server `' @ import.c/ImportImageCommand/367.
/home/rv/ncbi-blast-2.2.23+/db/formatdb.py: line 6: syntax error near
unexpected token `('
/home/rv/ncbi-blast-2.2.23+/db/formatdb.py: line 6: `conx = MySQLdb.connect
(user = 'root', passwd = '******', db = 'vaxijen_antigens')'
thư mục kịch bản của tôi được như sau:
/home/rv/ncbi-blast-2.2.23+/db/
Crontab trông giống như:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/python/:/home/rv/ncbi-blast-2.2.23+/database_backup:/home/rv/ncbi-blast-2.2.23+/db/
MAILTO="******"
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
0 0 * * * root /home/rv/ncbi-blast-2.2.23+/database_backup/backup.py
0 0 * * * root /home/rv/ncbi-blast-2.2.23+/db/formatdb.py
và kịch bản python của tôi trông giống như:
import MySQLdb
from subprocess import call
from subprocess import Popen
import re
conx = MySQLdb.connect (user = 'root', passwd = '******', db = 'vaxijen_antigens')
cursor = conx.cursor()
cursor.execute('select * from sequence')
row = cursor.fetchall()
f = open('vdatabase.fasta', 'w')
for i in row:
f.write('>'+i[0].strip()+'\n')
#f.write(i[1].strip().replace(' ','')+'\n')
s = re.sub(r'[^\w]','',str(i[1]))
s = ''.join(s)
for k in range(0, len(s), 60):
f.write('%s\n' % (s[k:k+60]))
f.write('\n')
f.close
Popen(["formatdb", "-p", "T", "-i", "vdatabase.fasta"]).wait()
Bạn có hệ điều hành nào? Một số lỗi tương tự trong gentoo, hãy thử sử dụng ví dụ câu trả lời này để giải quyết vấn đề của bạn http://schwobeseggl.de/2009/08/04/gentoo-portage-python/. Vấn đề của bạn là khi bạn đang chạy nó theo cách thủ công - bạn bắt đầu từ môi trường X, nhưng cron hoạt động mà không có máy chủ X ... –