/etc/cron.d에서 @reboot를 사용하는 방법


17

적절한 백업, 복원 및 버전 관리가 가능하므로 개별 사용자의 crontab을 /etc/cron.d로 마이그레이션하고 있습니다.

지금까지 사용자의 crontab과 기타 간의 유일한 차이점은 사용자를 6 번째 열로 지정해야한다는 것입니다. 이게 옳은 거니?

그리고 내 주요 질문은 인터넷 어디에서나 대답을 찾을 수 없었 @reboot습니다. /etc/cron.d 또는 / etc / crontab에서 사용하는 올바른 방법은 무엇입니까 ?

같은 것 @reboot root command?

답변:


20

에서 은 crontab man 페이지 :

/etc/cron.d/ 작업

cron.d의 작업은 일반적으로 둘 이상의 사용자가 사용하는 시스템 작업입니다. 그것이 바로 사용자 이름이 필요한 이유입니다. 첫 번째 줄의 MAILTO는 선택 사항입니다.

/etc/cron.d/job의 작업 예

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

그것은 / etc의 crontab에 대한 전체 섹션 이므로 작업이 실행되는 이름을 가진 사용자를 포함시키는 것이 실제로 유일한 차이점이라고 생각합니다.

같은 매뉴얼 페이지에서 다시 :

다음과 같은 특수 시간 지정 "닉네임"이 지원되며 5 개의 초기 시간 및 날짜 필드를 대체하고 앞에 '@'문자가 붙습니다.

@reboot : 재부팅 후 한 번 실행합니다.

따라서 @reboot 를 사용하는 올바른 방법 은

   @reboot user_name command

이다 정확한 .


1

의 경우에는 /etc/crontab당신 만이 줄을 추가해야합니다.

@reboot        command

여기서 command는 스크립트 또는 단일 파일 일 수 있습니다.


작동합니까? /etc/crontab일반적으로 사용자 이름이 필요합니다.
mwfearnley

1

아래와 같이 대화식으로 실행하는 경우 사용자를 지정하지 않습니다.

crontab -e
@reboot /root/mycommand

예를 들어 /etc/cron.d/mycronfile과 같이 /etc/cron.d에 파일로 저장하는 경우 사용자를 배치해야합니다.

@reboot root /root/mycommand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.