cron에서 두 명령을 연속적으로 실행하는 방법은 무엇입니까?

cron에서 두 명령을 연속적으로 실행하는 방법은 무엇입니까?

매 시간마다 실행해야 하는 명령이 2개 있으므로 다음 형식으로 /etc/cron.hourly/hrcron 파일에 넣습니다.

command1; command2

제 생각엔 작동할 것 같지만 실행을 방해하는 요인이 무엇인지 아는 사람이 있나요?

CentOS 6.8을 실행 중입니다.

답변1

파일은 에 있으며 실행 /etc/cron.hourly가능 해야 합니다. 질문에 표시된 한 줄 텍스트 파일을 해당 디렉토리에 넣으면 전혀 실행되지 않습니다. 같은 이유로 명령줄에서 해당 파일을 쉘 스크립트로 실행할 수 없습니다.cron.dailycron.monthly

당신이 말하고 싶은 것은 :

#!/bin/sh
command1
command2

두 번째와 세 번째 줄을 세미콜론으로 연결할 수 있지만 여기서는 반드시 필요하지 않습니다. 이는 완전한 쉘 스크립트이므로 이런 방식으로 명령을 "스택"할 필요가 없습니다.

또한 스크립트를 실행 가능으로 표시해야 합니다. 그렇지 않으면 여전히 실행되지 않습니다.

당신이 알고 있는 것에 근거하여 이 모든 것이 당신에게 이상하게 보인다면crontab기입, 이러한 디렉터리의 실행 파일은 일반적으로 다음과 같이 표시됩니다.anacron또는run-parts, 에 의한 것이 아닙니다 cron. 따라서 의 정보는 man 5 crontab여기에 실제로 적용되지 않습니다.

답변2

가장 깨끗한 방법은 두 개의 파일을 만드는 것입니다

  • /etc/cron.hourly/file1포함하다command1
  • /etc/cron.hourly/file2포함하다command2

command1 && command2첫 번째 명령이 실패하면 두 번째 명령이 설계된 대로 실행되지 않기 때문에 단일 cronjob을 실행하지 않는 것이 좋습니다 .

편집: command2 전에 command1을 실행해야 하는 경우 표준 /etc/crontab파일을 사용하여 다음과 같이 작성하십시오.

0 * * * *  root  command1
5 * * * *  root  command2

매시간 00분에 command1을 실행하고 매시간 05분에 command2를 실행합니다.

관련 정보