루트 crontab에서 매일 실행되도록 작업을 설정하고 싶습니다. 그러나 응용 프로그램에 상대 경로가 많으므로 필요한 모든 파일을 찾을 수 있도록 특정 디렉토리에서 실행하고 싶습니다.
어쨌든 crontab이 특정 디렉토리에서 실행되도록 할 수 있습니까?
루트 crontab에서 매일 실행되도록 작업을 설정하고 싶습니다. 그러나 응용 프로그램에 상대 경로가 많으므로 필요한 모든 파일을 찾을 수 있도록 특정 디렉토리에서 실행하고 싶습니다.
어쨌든 crontab이 특정 디렉토리에서 실행되도록 할 수 있습니까?
답변:
모든 작업은 쉘에 의해 실행되므로 디렉토리를 변경하는 명령으로 해당 쉘 스 니펫을 시작하십시오.
cd /path/to/directory && ./bin/myapp
&&
대신에 사용에 관해서 ;
: 일반적으로 차이가 없지만 응용 프로그램 에서 cd
명령이 실패하면 (예 : 디렉토리가 존재하지 않기 때문에) 명령이 &&
실행되지 않고 ;
실행됩니다 (그러나 의도 한 디렉토리가 아닙니다) ).
;
때문에 이중 앰퍼샌드 대신 세미콜론을 사용할 수 &&
있습니까? 아니면 작동하지 않습니까? 그리고 왜?
cd
명령이 실패하면 (예 : 디렉토리가 없기 때문에) &&
응용 프로그램이 실행되지 않습니다. 을 사용 ;
하면 의도 된 디렉토리가 아닌 실행됩니다.
SHELL
crontab에서 설정 하여 어떤 쉘 (예를 들어 sh가 아닌 bash가 필요한 경우)을 선택할 수 있는지 추가하겠습니다 .