2012-10-29 2 views
0

나는 24/7까지 웹 서버에 업로드 된 python 스크립트를 가지고 있습니다. 이 스크립트를 자동화하여 매시간 자동으로 실행합니다. 이것이 가능한가? 나는 cron job stuff를 보았지만 이것을 달성하는 방법에 대해서는 익숙하지 않다. 도움이나 예제가 도움이 될 것입니다.Python 스크립트 자동화

+0

['cron'] (http://en.wikipedia.org/wiki/Cron#Examples)에 관한 질문이 있으십니까? – chrisaycock

+0

python과 관련이 없습니다. 이 사이트를 검색하십시오. –

+0

크론은 정말로 가장 좋은 대답입니다. 학습 곡선은 분명히 있지만 다른 도구는 과도한 공격이 될 것이며 의심스러운 부가 가치를 가진 cron 래퍼가 될 것입니다. – mattbornski

답변

1

crontab -e 

와 함께이 라인

* 0 * * * /path/to/my/script 

내가 프로세스가 이미 실행되고 있는지 확인하는 bash는 스크립트 또는 뭔가를 사용하는 것이 좋습니다 추가 기능을 사용자의 cron 작업 파일을 엽니 다.

if [ `ps -u USERNAME | grep -i PROCESSNAME | wc -l` -lt 1 ] 
then 
    nohup python main.py & 
fi 

편집

유형 명령 crontab -e은 다음 enter 키를 누릅니다. 화면이 검은 색으로 변하고 ~의 무리가 옆에 있습니다. i을 누르면 현재 삽입 모드가됩니다. * 0 * * * /path/to/my/script을 입력하고 이것이 스크립트의 절대 경로인지 확인하십시오. Esc을 누른 다음 :x을 입력하고 Enter 키를 누릅니다. cron 파일을 저장해야합니다. 즉, vi 또는 vim이 cron 파일의 기본 편집기라고 가정합니다.

사이드, chmod 777 myscript.py 그러나 chmod를하고 권한을 숙지하시기 바랍니다, 트릭을 할해야

이 또한 스크립트가 실행되어 있는지 확인 말한다.

또한 #/python/version/to/use을 파이썬 파일의 첫 번째 줄로 사용해야합니다.

+0

존, 어떻게해야할지 모르겠군요. 내가 아는 전부는 내가 서버에 업로드 된 program.py라는 파일을 가지고 있으며, 주기적으로 그것을 실행하고 싶다. 누군가 cron job..and가 내가 아는 전부를 통해 할 수 있다고 나에게 말했다. 단계별로 자세히 설명해 주시겠습니까? – khan

+0

예 .. 할게 있습니다. – khan

+0

@khan, 편집을 참조하십시오. – John

1

먼저 데이터가 정적이 아닌 동적 데이터인지 확인하십시오. 동적 데이터는 데이터베이스 또는 CGI 스크립트를 통해 더 잘 액세스 할 수 있습니다.

두 번째 : 매뉴얼을 약간 읽으십시오. crontab은 cron 작업을 관리하는 데 사용되는 프로그램입니다. 웹 검색을 사용하면 더 많은 정보를 얻을 수 있습니다 (어느 손톱이 전투의 절반인지 알 수 있음). man crontab은 계획을 세우는 데별로 도움이되지 않지만 예상대로 파일을 편집하지 않으면 프로그램에 대한 정보를 제공 할 수 있습니다.

셋째 : 'python'을 실행하여 파이썬이 실행되는 위치를 결정하고 파일의 맨 위에 설명자를 추가하십시오. 제 경우에는 #!/usr/bin/python이됩니다.

넷째 : Pythton 스크립트를/usr/local/sbin/적절한 위치에 두십시오. 파일에서 chmod 775를 사용하여 파일을 실행 가능하게 만드십시오. 파일을 실행하여 예상대로 실행되는지 확인하십시오.

다섯째 : crontab -e로 cron 작업 테이블 테이블을 편집하십시오. 직접 실행할 수 없다면 sudo (즉, sudo crontab -e)에서 실행 해보십시오.

여섯 번째 : 이것은 위키 백과 @hourly 작동합니다 말한다 00에 분 변화 할 때마다 실행됩니다,하지만 난 그것을 시도 적이 0 * * * *로 /myPath/myfile.py

을 한 줄 추가 .시험 시험 시험 : 일곱

* * * * * command to be executed 
┬ ┬ ┬ ┬ ┬ 
│ │ │ │ │ 
│ │ │ │ │ 
│ │ │ │ └───── day of week (0 - 6) (0 is Sunday) 
│ │ │ └────────── month (1 - 12) 
│ │ └─────────────── day of month (1 - 31) 
│ └──────────────────── hour (0 - 23) 
└───────────────────────── min (0 - 59) 

다음과 같이

형식이다.

crontab - l은 cron 작업 사양을 나열합니다.

$ PYTHONPATH와 같은 환경 변수가 있는데, cron이 실행될 때 존재해야 할 수도 있습니다.

crontab에 6 개의 필드가있는 경우 첫 번째 필드는 초 수 있습니다.

언젠가 seomthing의 결과를 기록하고 싶습니다./var/logs에 로그 파일 디렉토리를 만드는 방법과 /etc/logrotate.d/ 파일로 관리하는 방법에 대해 읽어보십시오.

+0

정말 도움이됩니다. 감사. – khan