왜 crontab이 사용자 홈 디렉토리에 저장되지 않습니까?


35

crontab이 왜 사용자의 홈 디렉토리가 아닌 / var에 저장되어 있는지 궁금합니다. 업그레이드를 위해 이러한 파일을 격리하는 것이 완전히 고통 스럽지만 논리적 인 이유가 있다고 생각합니다 ...

답변:


41

내가 생각할 수있는 몇 가지 이유 :

  • 회사 환경에서는 수천 명의 사용자가있을 수 있습니다. 그렇다면 cron은 1 분마다 모든 단일 사용자 디렉토리를 스캔하여 crontab 파일 (생성, 삭제 또는 수정 여부)을 확인해야합니다.
    단일 위치에 유지함으로써이 집중 스캔을 수행 할 필요가 없습니다.
  • 홈 디렉토리가 항상 사용 가능한 것은 아닙니다. 홈 디렉토리가 autofs 마운트 인 경우 마운트되지 않을 수 있습니다. cron에서 1 분마다 확인하면 마운트되지 않고 비활성으로 인해 마운트 해제되지 않습니다. 또한 홈 디렉토리가 암호화되고 사용자 비밀번호로 암호 해독 된 경우 사용자가 로그인하여 암호를 해독 / 마운트하지 않으면 cron이 홈 디렉토리에 액세스 할 수 없습니다.
  • 홈 디렉토리는 호스트간에 공유 될 수 있습니다. 홈 디렉토리가 네트워크 공유 인 경우 동일한 홈 디렉토리가 여러 호스트에 나타납니다. 그러나 모든 단일 호스트에서 크론 작업을 실행하지 않고 그 중 하나만 수행 할 수도 있습니다.

1
+1 전통적으로 cron매분마다 해당 파일을 다시 스캔하지는 않았지만; 한 번만로드하고 신호에서 다시 읽습니다.
goldilocks

7
그러나 당신은 포인트 3에 대해 옳습니다. 에 따라 위키 백과 크론 탭 했다 "[벨 실험실의 devs] 크론로 명령에 유닉스를 통합 할 때까지의 crontab은 (호스트 특정되지 않은) 사용자의 홈 디렉토리 밖으로 파일 및 공통 호스트 별로 이동, $ HOME에 원래 spool directory ... "또한 crontab다시로드 문제를 처리 했을 수있는 명령이 생성 될 때 입니다.
goldilocks

2
@Patrick 또는 프로그램 utimes이 스풀 디렉토리 경로를 인수로 하여 시스템 호출을 사용하여 디렉토리의 mtime을 설정하는 경우 Vixie cron의 crontab명령이 수행합니다.
Mark Plotnick

2
crontab -e를 통해 편집하지 않으면 초기 버전의 cron은 확실히 사용자 crontab 파일의 변경 사항을 선택하지 않았습니다. 나는이 년 노인 페이지 참조 Solaris에서 과거에이에 의해 적발 된 manpages.info/sunos/cron.1.html

2
crontab -esetuid 루트 인 Solaris 10에서 /etc/cron.d/FIFO사용자가 crontab을 편집 한 후 메시지를 씁니다 .
Mark Plotnick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.