저는 내 서버 (Cent OS)에서 매일 실행하려는 Python 스크립트를 작성했습니다. 내 Python 스크립트에서 직접 bash 명령을 실행해야한다. 모든 것이 제대로 터미널에서 스크립트를 실행할 때 잘 작동하지만, bron 명령은 cron 작업이 스크립트를 실행할 때 실행되지 않습니다. 스크립트는 나머지 작업을 수행합니다 (데이터베이스에 삽입하는 등). 다음과 같이Python 스크립트가 cron 작업에서 bash 명령을 실행하지 않습니다.
내 crontab을 보인다 :
이00 20 * * 1-5 /home/skanydok/script.sh
script.sh에 포함 된 내가, 예를 들어 방법으로 서버에서 파일을 이동, 복사 또는 삭제하기위한 것입니다 몇 가지 방법을 보이는 한
#!/bin/bash
python /home/skanydok/serverBarcodeScanner.py
다음 :
이def copyBackup():
cmd = "cp -r SKANY_DOKUMENTOW_" + str(now)[:10] + '_' + str(random) + " ./backupy"
call(cmd.split(" "))
이 또한 내가 알에 방법 인쇄의 모든 출력을 저장하려면이 코드를 사용 OG 파일 : 사항 log.txt 파일이 생성되지
class Logger(object):
def __init__(self):
self.terminal = sys.stdout
self.log = open("./backupy/log.txt", "a")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
sys.stdout = Logger()
와 서버에서 스크립트를 실행 할 때 잘 작동하지만, 생각하는 모든 방법이 작동하지 않습니다 RM 등 CP, MV, 같은 명령을 실행합니다 :
python /home/skanydok/serverBarcodeScanner.py
크론 작업으로 물속에 뭔가가 있어야한다고 생각합니다. 모든 도움을 주시면 감사하겠습니다.
'python'의 절대 경로를 사용해 보셨습니까? 예를 들어'/ usr/bin/python/home/skanydok ...' –
@ Farhan.K가 위에서 언급 한 것처럼 'python'의 절대 경로를 사용하거나'#!/bin/bash' 대신' . ~/.bash_profile'. 또한 스크립트 안에서 경로를 참조 할 때마다 절대 경로를 사용하는 것을 잊지 말고'cd'와'pwd'를 사용하여 스크립트가 필요한 경로에서 실행되고 있는지 확인하십시오. –