rsync-books
crontab을 사용하여 실행하려고합니다. 입력 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 -e
crontab 항목에 사용자 이름을 포함하지 마십시오. 귀하의 crontab은 다음과 같아야합니다
55 12 * * * /storage/bin/rsync-books
편집: cron은 비대화형 셸에서 실행되므로 환경(및 경로)이 예상한 것과 다를 수 있습니다. cron에서 실행될 스크립트에 전체 경로를 지정하는 것이 가장 좋습니다.