예약된 작업 항목:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /FinalSync.sh $(/bin/date --date="5 days ago" +\%d_\%m_\%Y) || echo $? >> log
또는
* * * * * /FinalSync.sh $(date --date="5 days ago" +\%d_\%m_\%Y) || echo $? >> log
둘 다 시도
로그 파일의 오류 코드는 126입니다.
쉘 스크립트
#! /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
ls -l
@ilkkachu에 대한 검색결과
-rw-r--r-- 1 root root 299 Oct 17 16:20 /FinalSync.sh
답변1
이전 질문에 대한 내 의견에서 제안한 것처럼 오류 코드 126은 스크립트나 그 안에 있는 명령을 실행할 권한이 없음을 의미하는 것 같습니다(참조http://tldp.org/LDP/abs/html/exitcodes.html). 그런데 crontab
그게 하나의 과정이라고 생각하기 때문에 이상해요 root
. 다음을 시도해 보세요:
chmod +x /FinalSync.sh
이것이 도움이 될 수 있습니다. 그렇지 않으면 명령에서 문제가 발생할 수 있습니다 cp
(어쩌면 쓰지 말아야 할 곳에 쓰려고 했을 수도 있습니다). 또한 \cp
별칭을 피하십시오. 따라서 누가 스크립트를 시작하든 항상 동일하게 작동합니다.