2016-06-24 2 views
0

bash는 스크립트,리눅스 cron 작업은 파이썬에게

#! /bin/bash 

echo 'hi bash' 

aa 
python ~/fledgling/cron/test.py 

echo 'after python script' 
여기

aa을 사용하여 파일을 만드는 것입니다 별칭,

import time 

with open('~/fledgling/cron/%s.txt' % time.strftime("%Y_%m_%d__%H:%M:%S"), 'w') as f: 
    f.write('%s' % time.strftime("%Y_%m_%d__%H:%M:%S")) 

난에 원하는 1 분마다이 Python 스크립트를 실행하십시오.

crontab을, ~/신생/크론/log.txt에의

* * * * * ~/fledgling/cron/test.sh >> ~/fledgling/cron/log.txt 

내용의/var의

hi bash 
after python script 

출력/시스템 로그/

✘ ✝ ~/fledgling/cron tail -f /var/log/syslog 
Jun 24 13:46:01 mysys CRON[14697]: (mysys) CMD (~/fledgling/cron/test.sh >> ~/fledgling/cron/log.txt) 
Jun 24 13:46:01 mysys CRON[14696]: (CRON) info (No MTA installed, discarding output) 
Jun 24 13:47:01 mysys CRON[14736]: (mysys) CMD (~/fledgling/cron/test.sh >> ~/fledgling/cron/log.txt) 
Jun 24 13:47:01 mysys CRON[14735]: (CRON) info (No MTA installed, discarding output) 
Jun 24 13:48:01 mysys CRON[14747]: (mysys) CMD (~/fledgling/cron/test.sh >> ~/fledgling/cron/log.txt) 
Jun 24 13:48:01 mysys CRON[14746]: (CRON) info (No MTA installed, discarding output) 
Jun 24 13:48:11 mysys crontab[14769]: (mysys) BEGIN EDIT (mysys) 
Jun 24 13:48:59 mysys crontab[14769]: (mysys) END EDIT (mysys) 
Jun 24 13:49:01 mysys CRON[14794]: (mysys) CMD (~/fledgling/cron/test.sh >> ~/fledgling/cron/log.txt) 
Jun 24 13:49:01 mysys CRON[14793]: (CRON) info (No MTA installed, discarding output) 

권한을 기록,

-rw-rw-r-- 1 mysys mysys 476 Jun 24 13:57 log.txt 
-rwxrw-r-- 1 mysys mysys 153 Jun 24 13:37 test.py 
-rwxrwxr-x 1 mysys mysys 91 Jun 24 13:32 test.sh 

내가 원하는 것은 무엇입니까? 매분마다 텍스트 파일을 만들고 싶습니다.

내 문제는 무엇입니까? 나는 매분 bash 스크립트가 에러없이 실행 중이고, 파이썬 스크립트가 실행되지 않거나 텍스트 파일을 생성하지 않는 이유를 로그에서 볼 수있다.

+0

'#!/bin/bash'는 공백이 없어야합니다. '~'어디로 가고 있다고 생각하니? – 123

답변

1

문제는 파이썬에서는 ~, 쉘에서는 which will be expanded을 사용할 수 없다는 것입니다. 일부 답변에서 언급 한 이후

는 선언을 한 가지 # 후

공간이다! 선택 사항입니다.

wikipedia에서 이걸 봤는데, 내 맥에서 확인해 봤어.

0
  • 아니 ~ 파이썬
  • 없음 공간을 이후에! bash는 헤더에
  • 크론에 의해 시작 확실하지 배쉬는 별명
  • 확실하지 crontab을 추측합니다 ~ 로그에서
  • 봐 동의를 재 시도
  • (은/var/아마/시스템 로그 로그) 2>/tmp를/test.sh이 실행 가능한지의 crontab에
  • 검사를 debug.log를
0

그런 다음 당신은 사용되지 않을 수 있습니다 서버에서 해당 스크립트를 실행하는 경우 :

os.path.expanduser('~') 
0

쉘 스크립트에서 별칭이 아닌 전체 경로를 사용하십시오.

AA =/가정/신생/프로젝트/myblog/기본

CD를 $ 금주 모임

관련 문제