2014-11-08 3 views
3

나는 특정 이메일 주소로 이메일을 보내 다음과 같은 스크립트를 작성하고, .openshift/크론/미세 디렉토리 내에 그것을 저장 : 다음 서버에 스크립트를 밀어.openshift/cron/minutely 디렉토리의 OpenShift에서 호스팅되는 내 Python 스크립트가 실행되지 않습니다. 뭐가 문제 야?

import smtplib 
g = smtplib.SMTP('smtp.gmail.com:587') 
g.ehlo() 
g.starttls() 
g.ehlo() 
g.login('myusername','mypassword') 
g.sendmail('myemail','otheremail','message') 

.

프로그램이 매분 1 회 실행되고 매분마다 이메일을받을 것으로 예상했습니다. 그러나 내 코드가 실행 중임을 나타내는 증거는 없습니다. 문제의 원인은 무엇입니까? 신청서 작성 단계를 잊었습니까?

참고 : 제공된 전자 메일 주소와 암호가 정확하고 cron이 설치되어 있는지 확인했습니다.

편집 : 문제가 서버에서 시작된 것 같다 : 내가 파일의 원래 내용, 생성 된 'testfile.txt'를 삭제하고, 대신에이 코드를 썼다 : 대기 후

a = open('testfile.txt','r+') 
if not a.read(): 
    a.write('Test writing') 
a.close() 

을 코드를 실행하고 서버에 SSH - 보내고, 나는 app-root/logs라는 이름의 디렉토리로 변경하고이 같은 모습 cron.log의 내용 표시 : 서버를 n이라고

Sat Nov 8 11:01:11 EST 2014: START minutely cron run 
__________________________________________________________________________ 
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py: 
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py: line 1: syntax error near unexpected token `(' 
/var/lib/openshift/545a6ac550044652510001d3/app-root/runtime/repo//.openshift/cron/minutely/test_openshift.py: line 1: `a = open('testfile.txt','r+')' 
__________________________________________________________________________ 
Sat Nov 8 11:01:11 EST 2014: END minutely cron run - status=0 
__________________________________________________________________________ 

이 될 수를 내 파일의 코드를 파이썬 코드로 해석하지 않습니까? 어떤 제안이라도 환영합니다.

+0

접근 방법이 잘못되었습니다. 문제를 최소한으로 재생산 해보십시오. 예를 들어 문제를 줄이기 위해 스크립트의 파일에 무언가를 쓰려고 할 수 있습니다. 문제는 도서관, GMail의 보안 또는 기타 사항에서 발생할 수 있습니다. – AsTeR

+0

예, 디버깅에 도움이되는 몇 가지 정보를 로깅해야합니다. –

+0

감사합니다. 나는 그것을 시도하고 당신에게 돌아갈거야 – loic17

답변

3

하는 스크립트를 만들 수있는 권한이하는 디렉토리에 콘솔을

rhc ssh app_name 

변경을 openshift에 연결 :

cd $OPENSHIFT_DATA_DIR 

이 test01.py 스크립트를 만듭니다

touch test01.py 

가지 적어 test01 권한을 실행 .py

chmod +x test01.py 

편집 스크립트

nano test01.py 

print("Hello") 

실행 스크립트와 같은 간단한 코드를 추가

./test01.py 

오류 :

./test01.py: line 1: syntax error near unexpected token `"Hello"' 
./test01.py: line 1: `print("Hello")' 
,451,515,

지금 이제 파이썬 경로

which python 

출력

/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python 

을 확인 test01에 그녀의 강타를 추가합니다.평

#!/var/lib/openshift/your-sesseion-id/python/virtenv/venv/bin/python 
print("Hello") 

지금 실행이

./test01.py 

출력 :

Hello 

결론 : 스크립트를 실행하는 방법을 알고 어디 파이썬 경로, 그래서 그것을 추가해야 스크립트의 첫 번째 줄

관련 문제