2015-10-21 5 views
2

Когда я пытаюсь вызвать функцию python с помощью cronjob, она возвращает ошибку.Ошибка Cronjob при попытке вызвать функцию python

Функция работает нормально, когда я запускаю его из питона оболочки

Вот ошибка:

: command not found 
import: unable to open X server `' @ error/import.c/ImportImageCommand/368. 
import: unable to open X server `' @ error/import.c/ImportImageCommand/368. 
import: unable to open X server `' @ error/import.c/ImportImageCommand/368. 
import: unable to open X server `' @ error/import.c/ImportImageCommand/368. 
: command not found 
: command not found 
-bash: from: command not found 
: command not found 
: command not found 
-bash: message: command not found 
: command not founde is very slow, 
: command not foundway either I restarted the server or it's not responding, 
: command not founds down :(} 
-bash: address: command not found 
: command not found 
: command not found 
-bash: kb_log.py: line 25: syntax error near unexpected token `(' 
'bash: kb_log.py: line 25: `def test_speed(url="http://www.kenyabuzz.com",timeouttest=2): 

Файл kb_log:

import urllib2 
import time 
import socket 
import smtplib 


from django.core.mail import send_mail 


message = {404:"The Page not found possibly a missing", 
      "slow":"The site is very slow", 
      502:"502 Gateway either I restarted the server or it's not responding", 
      504:"Server is down :("} 
# url = "http://www.kenyabuzz.com" 
address = "[email protected]" 
# timeoutest = 60 #seconds 


def test_speed(url="http://www.kenyabuzz.com",timeouttest=2):  
    try: 
     begin_time = time.time() 
     requesttest = urllib2.urlopen(url,None,timeouttest) 
     requesttest.read() 
     return "Site is okay with a response time of {0}".format(time.time() - begin_time) 
    except socket.timeout: 
     return message["slow"] 
    except urllib2.HTTPError, e: 
     return message[e.code] 

def send_email(): 
    result = test_speed() 
    server = smtplib.SMTP('smtp.gmail.com', 587) 
    server.starttls() 
    server.login("[email protected]", "xdjmfppkffwmiwvh") 
    server.sendmail("[email protected]", ['[email protected]','[email protected]'], result) 
    server.quit() 

if __name__ == '__main__':  
    send_email() 

Я думаю, что этот вопрос может быть с тем, как он называется.

ответ

2

Вы используете это как скрипт оболочки. «import» - это программа.

Добавьте «#!/Usr/bin/python2» в начало вашей программы. ОС будет интерпретировать это и запустить python для интерпретации вашей программы.

+0

альтернативно, используйте «python2 yourprogramname» в своем crontab. –

0

Не могли бы вы рассказать, как вы создаете правило? Ваше правило должно выглядеть так:

0 * * * * /usr/bin/python /path/to/your/script.py

Смежные вопросы