Cronjob 출력이 작동하지 않습니다.

Cronjob 출력이 작동하지 않습니다.

다음과 같은 예약된 작업이 있습니다.

#!/bin/bash
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
mkdir -p $YEAR/$MONTH/$DAY
mysqldump -uroot -p1234 locatari > $YEAR/$MONTH/$DAY/backup.sql

3분마다 실행하고 싶습니다. crontab다음 명령을 각각 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다.

3 * * * * /usr/bin /home/rome/cronjob/back.sh > /home/rome/cronjob
3 * * * * /home/rome/cronjob/back.sh/
3 * * * * exec `/bin/bash /home/rome/cronjob/back.sh`
3 * * * * /bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1

나는 다음과 같은 경우에만 실행합니다.

bash back.sh

bash 명령을 사용하면 모든 것이 예상대로 작동합니다. 크론 스케줄러에 어떤 문제가 있나요? 문제는 crontab 명령을 사용하면 출력을 볼 수 없고 bash 명령에서만 작동한다는 것입니다.

답변1

crontab명령줄에 입력한 내용과 일치하는 작업 항목이 없습니다.

  1. /usr/bin /home/rome/cronjob/back.sh프로그램을 실행하려고 하는데 /usr/bin디렉토리입니다.
  2. /home/rome/cronjob/back.sh/스크립트를 디렉토리로 취급해 보세요
  3. exec `/bin/bash /home/rome/cronjob/back.sh`사용해 보세요산출실행할 프로그램 이름으로
  4. /bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1이것은 효과가 있을 수 있습니다. 단지 스크립트의 모든 출력을 삭제하여 오류가 표시되지 않는다는 것입니다.

귀하의 의견 피드백에 따르면 다음과 같은 것을 원할 것 같습니다( /home/rome어차피 홈 디렉토리이므로 생략하겠습니다).

*/3 * * * * cd cronjob && bash back.sh >back.log 2>&1

답변2

크론 일정 표현은 "분당 3개" => 매시간을 의미합니다.
3분마다 다음과 같습니다.

*/3 * * * *

이것 좀 봐좋은 도구표현을 확인해보세요.

또한 마지막 cron 명령만 유효합니다. 하지만 출력을 /dev/null.

관련 정보