crontab에서 실행되지 않는 쉘 스크립트

crontab에서 실행되지 않는 쉘 스크립트

아래는 내 crontab 항목입니다.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * *  /FinalSync.sh $(date --date="5 days ago" +%d_%m_%Y) || echo $? >> log

로그 파일에도 오류가 없습니다.

쉘 스크립트

#! /bin/sh

source=/Source/$1
destination=/Destination
folderParam=$(basename $source)
if /usr/bin/rsync -avh -r $source $destination; then
   cp /FolderCopyStatus/Success   /Status/Success_$folderParam
else
   cp /FolderCopyStatus/Failure   /Status/Failure_$folderParam
fi

아래와 같이 명령줄에서 사용하면 스크립트가 완벽하게 실행됩니다.

sh /FinalSync.sh  $(date --date="5 days ago" +%d_%m_%Y)

답변1

cron모든 항목의 개행 문자 %로 변환됩니다 . 다음을 사용하여 s를 이스케이프 처리 crontab해야 합니다 .%\

* * * * *  /FinalSync.sh "$(date --date="5 days ago" +\%d_\%m_\%Y)"

관련 정보