CronJobs는 첫 번째 단어가 사용자인지 명령인지 어떻게 이해합니까?

CronJobs는 첫 번째 단어가 사용자인지 명령인지 어떻게 이해합니까?

cronjobs파일에 쓸 때 :

* * * * * foo bar

명령을 사용자로 foo실행해야 하는지 , 아니면 입력 매개변수가 있는 명령 으로 실행해야 하는지 시스템에서 어떻게 알 수 있나요 ?barfoobar

답변1

차이점은 다음과 같습니다.사용자crontab 파일에 사용자 이름 필드가 없는 경우체계항상 사용자 이름이 포함된 crontab 파일입니다.사용자crontab 파일은 crontab(1)명령을 통해 액세스되는 파일입니다.체계이와 대조적으로 crontab 파일은 일반적으로 etc디렉토리 에 있으며 crontab(1)인터페이스를 통해 편집되지 않습니다.

그래서 cron(8)아니면 crond(8)그냥 알아야 해사용자crontab 파일 구문 분석(6번째 필드는 명령) 또는체계파일(여섯 번째 필드는 사용자 이름이며 그룹일 수도 있음) 이는 cron 파일이 실행되는 디렉터리에 따라 플래그를 통해 설정할 수 있습니다. 동시에 시스템 관리자는 crontab -e특정 방식으로 파일을 편집 하고 있는지 여부를 기억할 수 있기를 원합니다.사용자아니면 대신 수정하세요체계크론탭 파일.

일반적으로 파일에는 기본값과 같은 필드를 상기시키는 주석이 있습니다.사용자OpenBSD의 crontab 파일에는 다음이 root포함됩니다.

#minute hour    mday    month   wday    [flags] command
...

또는체계일부 Linux 시스템의 crontab 파일에서 다음 주석을 찾을 수 있습니다.

#minute hour    mday    month   wday    user    command

# how much are the dhcp pools being used?
36      */4     *       *       *       root    ...

crontab(5)스스로 상기시켜야 할 다른 문제가 있을 수 있으므로 수시로 읽어 보는 것이 좋습니다.

답변2

이는 편집 중인 crontab 파일에 따라 다릅니다.

사용자별 crontab 파일에는 어떤 사용자 계정이 명령을 실행할지 명확하므로 사용자 필드가 없습니다. 반면, 시스템 crontab 파일의 항목에는 명령이 실행될 사용자 계정을 식별하는 필드가 필요합니다.

관련 정보