쉘 스크립트를 실행하기 위해 크론 작업을 설정하는 방법은 무엇입니까? 문제점은 스케줄

나는 cron 일을 설정했다 :

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

주요 문제점은 스케줄 시간에 “메일이 / var / spool / mail / lucky으로 전송되었습니다”라는 오류가 있다는 것입니다.

myfile.sh의 내용은 다음과 같습니다.

mkdir jh
cd jh 



답변

크론 작업으로 설정된 스크립트에는 적합하지 않습니다.

mkdir jh
cd jh 

jh디렉토리를 작성해야하는 전체 경로를 제공 해야합니다. 또한이 경로에는 새 파일 / 디렉토리를 작성할 수있는 권한이 있어야합니다.

예를 들어, 스크립트는 다음과 같아야합니다.

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

또한 /usr/bin/sh올바른 경로가 아닙니다 sh. 올바른 길은입니다 /bin/sh. whereis sh명령으로 확인할 수 있습니다 . 그럼에도 불구하고 cron 작업은 다음과 같아야합니다.

20 * * * * /home/lucky/myfile.sh

스크립트를 실행 가능하게 만드는 것을 잊지 마십시오 :

chmod +x /home/lucky/myfile.sh


답변

이 폴더를 만드는 것으로 보이는 경로는 /입니다. 이는 실행하는 모든 파일의 폴더 및 파일crontab대한 전체 경로가 필요 하기 때문 입니다.

따라서 myfile.sh의 경로는

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shsh가 / usr / bin / sh에 존재하는지 여부를 확인하기 위해 경로를 확인해야하지만이 행은 정확합니다 (sh가 존재하는 경로를 보는 데 사용 which sh하십시오.내는 / bin / sh였습니다)

crontab 작성을 서두르면이 링크에 꽤 좋은 예가 있습니다.

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/


답변