사용자별 작업과 시스템 작업이 특정 사용자로 실행됨

사용자별 작업과 시스템 작업이 특정 사용자로 실행됨

데비안과 그 파생물에 관해 모순되는 것처럼 보이는 다음 사실을 어떻게 이해해야 합니까?

  • /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"시스템" 사용자(예를 들어 logcheckcron 작업 의 경우 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.

관련 정보