crontab이 제대로 작동하는지 어떻게 알 수 있나요?

crontab이 제대로 작동하는지 어떻게 알 수 있나요?

crontab이 제대로 작동하는지 알려주는 crontab 로그가 있습니까? 저는 리눅스 민트 17.3을 사용하고 있습니다.

내가 뭘 한거지:

  1. crontab -e루트로 실행
  2. 존재하지 않아서 nano editor를 선택하고 계속합니다.
  3. 이 줄을 입력하세요00 12 * * * /home/vlastimil/Development/bash/full-upgrade.sh
  4. 저장 및 종료

내 목표는 하루 12시간(자정이 아닌 정오) 자동 업데이트하는 것입니다. 이 글은 이 목표를 달성하는 최선의 방법을 논하려는 의도가 아닙니다.

/home/vlastimil/Development/bash/full-upgrade.sh다음 내용으로 파일을 만들었습니다 .

#!/bin/bash
apt-get update && apt-get dist-upgrade -y && apt-get --purge autoremove -y

마지막으로 파일에 대해 755 권한을 설정했습니다.

어떻게 테스트해야 할지 모르겠습니다. 작동할까요?

답변1

관련 syslog 데몬과 해당 로깅 구성 방법에 따라 로그가 syslog로 이동할 수 있습니다.

grep -r cron /etc/*syslog*

시스템에서 어디서 무슨 일이 일어났는지 찾아보세요. 또는 derobert에 따르면 systemd관련 명령은 다음과 같습니다.

journalctl -b 0 _SYSTEMD_UNIT=cron.service

파일과 관련된 테스트 크론 작업을 추가하면( /tmp보안상의 이유로 공급업체가 사용자별로 비공개로 설정하지 않는 한 바람직함) 크론이 작동하는지 확인해야 합니다. 테스트 크론 작업이 파티션을 채우기 전에 최종적으로 제거되었는지 확인하세요. 뭔가 바보같아.

기타 유용성 및 보안 지침: 일부 cron 데몬은 스크립트를 직접 실행할 수 있으며, 이 경우 스크립트를 에 복사할 수 있습니다 /etc/cron.daily. 하지만 이는 (다른 모든 것과 함께!) 맨 위에서 실행하고 싶지 않은 작업에는 적합하지 않을 수 있습니다. root사용자의 홈 디렉터리에서 스크립트를 실행하는 것은 매우 나쁠 수 있습니다. 해당 사용자 계정이 손상되어 루트 액세스 권한을 얻을 수 있거나 홈 디렉터리가 NFS에 있거나 암호화된 경우 스크립트가 불필요하게 실패할 수 있기 때문입니다. 이를 피하십시오( 로컬 파일 시스템 기본 설정에 /root/bin따라 /usr/local또는 종속됨)./opt

더 많은 포인터가 셸 스크립트 디버깅 영역에 속합니다. 가장 중요한 것은 cron이 셸이 아니라는 점에 유의하거나 cron 아래의 설정을 살펴보고 올바른지 확인하는 것입니다. env( set오래 PATH되고 끔찍한 Linux 커널 버그와 관련이 있습니다. Java 데몬이 충돌하지만 전제 조건은 디버깅을 위해 cron에서 실행된다는 것입니다...)

관련 정보