일일 크론 작업이 작동하지 않는 것 같습니다.

일일 크론 작업이 작동하지 않는 것 같습니다.

매일 오전 2시에 쉘 스크립트를 실행하는 cron 작업이 있습니다.

0 2 * * * /root/bin/script.sh

그러나 전혀 작동하지 않습니다. 내가 무엇을 놓치고 있나요?

자세한 내용: 스크립트는 수동으로 실행될 때 크론 예약 없이 잘 실행되며 예상되는 작업을 수행합니다. 루트 사용자가 cron 작업을 실행 중입니다. cron 작업은 사용자 crontab -e로 예약되었습니다 root. pgrep croncron 서비스가 실행 중임을 의미하는 서비스 ID를 제공합니다. 파일 내용은 다음과 같습니다 /root/bin/script.sh.

BACKUP_LOG=/var/log/backup.log
exec 1> >(while IFS= read -r line; do echo "$(date --rfc-3339 ns) $line"; done | tee -a ${BACKUP_LOG}) 2>&1

# Back up the etc directory
mkdir /home/directory1/backup/etc_backup
cp -Lrp /etc /home/data/backup/etc_backup
tar czf /home/data/backup/etc_backup.tgz
/home/data/backup/etc_backup
rm -rf /home/data/backup/etc_backup

실제로 스크립트를 /etc/cron.daily/에서 /root/bin. 스크립트는 /etc/cron.daily일일 실행에만 사용되어야 합니까 ?

답변1

내 생각 엔 적절한 shebang이 없기 때문에 스크립트가 쉘에서 제대로 이해되지 않는 것 같습니다. crontab -e대신 이것을 사용해 보세요 :

0 2 * * * bash /root/bin/script.sh > /tmp/crontest.log 2>&1

bash를 사용하여 스크립트를 직접 호출하면 이제 스크립트가 제대로 실행됩니다. 모든 출력은 결국 로그에 기록되어야 하며 /tmp/crontest.log, 여전히 작동하지 않는 경우 디버깅에 도움이 될 수 있습니다.

관련 정보