Crontab-디렉토리에서 실행


170

루트 crontab에서 매일 실행되도록 작업을 설정하고 싶습니다. 그러나 응용 프로그램에 상대 경로가 많으므로 필요한 모든 파일을 찾을 수 있도록 특정 디렉토리에서 실행하고 싶습니다.

어쨌든 crontab이 특정 디렉토리에서 실행되도록 할 수 있습니까?

답변:


318

모든 작업은 쉘에 의해 실행되므로 디렉토리를 변경하는 명령으로 해당 쉘 스 니펫을 시작하십시오.

cd /path/to/directory && ./bin/myapp

&&대신에 사용에 관해서 ;: 일반적으로 차이가 없지만 응용 프로그램 에서 cd명령이 실패하면 (예 : 디렉토리가 존재하지 않기 때문에) 명령이 &&실행되지 않고 ;실행됩니다 (그러나 의도 한 디렉토리가 아닙니다) ).


대부분 중복되는 답변을 추가하는 대신 SHELLcrontab에서 설정 하여 어떤 쉘 (예를 들어 sh가 아닌 bash가 필요한 경우)을 선택할 수 있는지 추가하겠습니다 .
Edd Steel

12
+1. 다른 모든 관련 질문의 해결책은 절대 경로로 스크립트를 다시 작성하는 것입니다. 이것이 바로 내가 필요한 것입니다
Conrad. Dean

2
호기심 ;때문에 이중 앰퍼샌드 대신 세미콜론을 사용할 수 &&있습니까? 아니면 작동하지 않습니까? 그리고 왜?
Joshua Pinter

32
@JoshPinter 일반적으로 차이가 없습니다. 그러나 cd명령이 실패하면 (예 : 디렉토리가 없기 때문에) &&응용 프로그램이 실행되지 않습니다. 을 사용 ;하면 의도 된 디렉토리가 아닌 실행됩니다.
Gilles 'SO- 악마 중지'

1
나는 대단히 감사합니다, 당신이 내 소스 파일을 변경 나를 구원, 내 애플 리케이션의 모든 cron 작업으로이 작업을 수행 할 것
회계사 م을
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.