crontab이 제대로 작동하는지 알려주는 crontab 로그가 있습니까? 저는 리눅스 민트 17.3을 사용하고 있습니다.
내가 뭘 한거지:
crontab -e
루트로 실행- 존재하지 않아서 nano editor를 선택하고 계속합니다.
- 이 줄을 입력하세요
00 12 * * * /home/vlastimil/Development/bash/full-upgrade.sh
- 저장 및 종료
내 목표는 하루 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에서 실행된다는 것입니다...)