Cronjob이 실행되지 않습니다.

Cronjob이 실행되지 않습니다.

rsync-bookscrontab을 사용하여 실행하려고합니다. 입력 crontab -e결과:

55 12 * * * diegoaguilar /storage/bin/rsync-books

다음 /storage/bin/rsync-books과 같이 보입니다.

if [ -d "/media/Beagle/books" ]; then
  rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

확인을 위해 스크립트에 실행 권한이 있습니다. 나는 wait 명령을 시도하고 있었고 /media/Beagle/books가 존재했을 때 아무것도 rsync되지 않았고 로그 파일도 생성되지 않았습니다.

내가 놓친 것이 있나요?

답변1

Cron은 환경 없이 명령을 실행하므로 PATH변수가 설정되지 않습니다. 따라서 rsync스크립트에서 전체 경로를 지정 해야 합니다 .

if [ -d "/media/Beagle/books" ]; then
  /usr/bin/rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

또한 실행 중인 경우 crontab -ecrontab 항목에 사용자 이름을 포함하지 마십시오. 귀하의 crontab은 다음과 같아야합니다

55 12 * * * /storage/bin/rsync-books

편집: cron은 비대화형 셸에서 실행되므로 환경(및 경로)이 예상한 것과 다를 수 있습니다. cron에서 실행될 스크립트에 전체 경로를 지정하는 것이 가장 좋습니다.

관련 정보