데비안과 그 파생물에 관해 모순되는 것처럼 보이는 다음 사실을 어떻게 이해해야 합니까?
/etc/crontab
/etc/cron.d/*
작업이 사용자(루트 또는루트가 아닌).사용자별 작업에 있는 작업
/etc/crontab
과 시스템 작업이 아닌가요?/etc/cron.d/*
루트 또는 루트 가 아닌 사용자로 작업을 실행하려면 어디에 작업을 추가 하시겠습니까 /etc/crontab
?/etc/cron.d/*
/var/spool/cron/crontab/<user>
스티븐의 코멘트/etc/cron.d 아래의 파일을 어떻게 사용합니까?많이 설명했지만 여전히 이해가 안 돼요.
시스템 작업은 전체 시스템에 적용되는 작업입니다. 사용자별 작업은 특정 사용자를 대신하여 실행되는 작업으로, 일반적으로 사용자가 로그인할 때 수동으로 수행하지만 특정 파일의 백업과 같이 정기적으로 자동화하려는 작업입니다. , 원격 개발 저장소 새로 고침, 메일 처리 또는 미러링 웹사이트
감사해요.
답변1
나는 다음과 같은 다양한 cron 구성 파일을 사용하는 경향이 있습니다.
/var/spool/cron/crontab
"실제" 사용자가 사용함(즉사용자는 편집에 사용되는 시스템을 사용하는 인간에 해당합니다crontab -e
./etc/cron.d
"시스템" 사용자(예를 들어logcheck
cron 작업 의 경우logcheck
) 주제에 대한 다른 질문에 대한 답변에서 언급했듯이/etc/cron.d
적어도 Debian 기반 시스템의 소프트웨어 패키지에서 사용하도록 고안되었습니다./etc/crontab
로컬로 정의된 시스템 작업에 사용되며 루트로 실행되지만/etc/cron.{hourly,daily,weekly,monthly}
이러한 작업이 더 편리합니다.
내 의견에서 "사용자"는 "사람이 지원하는 사용자"를 의미합니다(그런 식으로 표현하도록 허용한다면). 내 생각에는 "시스템 사용자"(루트 또는 기타)로 실행되는 작업은 시스템 작업입니다.
데비안 패키징 관점에서 데비안 정책은 다음과 같이 설명합니다.권장 사례크론 작업 정보: 요약하자면, /etc/cron.{hourly,daily,weekly,monthly}
적절한 경우 사용하고, /etc/cron.d
그렇지 않은 경우 사용하세요. 따라서 5개 디렉터리 모두에서 패키지가 제공하는 작업을 보는 것이 정상입니다.
답변2
아래 crontab은 /etc
루트(또는 특정 패키지가 설치된 경우 루트에 의해 암시적으로)만 수동으로 편집할 수 있습니다. 이러한 crontab은 일반적으로 시스템의 서비스와 관련된 작업을 예약하는 데 사용됩니다. 따라서 이는 "시스템 작업"입니다. 이러한 서비스 중 일부는 루트가 아닌 사용자로 실행될 수도 있습니다.
스풀 crontab은 /var
사용자별 crontab입니다. 사용자는 자신의 개인 crontab을 편집할 수 있어야 합니다 crontab -e
(이는 아마도 루트에게도 합당한 일입니다). 시스템의 특정 서비스에 바인딩되지 않은 사용자(예: 인간)는 crontab에서 자신을 대신하여 cron 작업을 실행할 필요가 없습니다 /etc
.