주석 처리된 crontab 파일 행이 실행되는 이유는 무엇입니까?

주석 처리된 crontab 파일 행이 실행되는 이유는 무엇입니까?

놀랍게도 일부 테스트 파일을 백업하기 위해 crontab과 rsync를 사용하여 지난 2015년 12월에 시작한 실험이 여전히 실행 중입니다. 내 유일한 crontab 파일에는 다음 줄만 있습니다.

#55 20 * * * /home/Harry/testrsync/trial_bak.sh

몇 주 후에 시험이 끝났다고 생각했을 때 #이 추가된 주석이 달렸거나 그랬어야 했습니다.

내 질문은 왜 여전히 실행됩니까? 아니면 # 없이 이 줄을 수행하는 다른 방법이 있나요?

백업은 매일 20시부터 55시까지 수행되며 마지막 4개만 유지하며 crontab 항목과 Trial_bak.sh 스크립트에 정의된 대로 유지됩니다.

저는 최신 Fedora로 업데이트하기 위한 준비의 일환으로 Fedora 20과 함께 zshell을 사용하고 있습니다.


해결됨:

답변해주신 모든 분들께 감사드립니다. @Marki555의 답변을 바탕으로 /etc/cron.daily매일 백업을 수행하는 스크립트가 포함된 디렉토리가 있다는 것을 발견했습니다. 따라서 crontab의 항목은 실제로 주석 처리되어 활성화되지 않았습니다.

답변1

cron데몬은 여러 파일에서 crontab을 가져옵니다.

디렉토리 /etc/cron.d와 파일은 /etc/crontab수동으로 편집할 수 있고 데몬이 항상 자동으로 새 버전을 볼 수 있다는 점에서 특별합니다. 또한 이는 사용자 이름 필드도 있는 유일한 crontab 파일입니다.

/var/spool/cron/crontabscron 데몬은 개별 사용자의 crontab(보통 in)을 자동으로 다시 읽지 않습니다. 각 변경 후에는 명령을 사용하여 편집 crontab -e하거나 cron 데몬을 다시 시작해야 합니다.

따라서 귀하의 경우 먼저 cron 데몬을 다시 시작하는 것이 좋습니다. trial_bak.sh실행과 같은 일부 디버그 출력을 스크립트에 추가할 수도 있습니다 pstree -p.

답변2

표시되는 행이 이름이 지정된 파일의 출력 crontab -l또는 파일에서 추출되었습니까 crontab?

실행 중인 crontab은 일반적으로 /var/spool 아래의 디렉토리에 있습니다. 이 위치는 다를 수 있습니다. 실제 crontab의 이름은 일반적으로 적용되는 사용자 ID에 따라 지정됩니다.

일반적으로 crontab은 편집할 수 있도록 파일로 추출됩니다. 그러나 crontab crontab원래 crontab 항목은 명령을 사용하여 다시 로드하지 않는 한 계속 작동합니다.

관련 정보