atd가 과거 작업을 실행하지 못하게하는 방법은 무엇입니까? 8시에 작업이 예약되어 있고 그

at 데몬은 훌륭한 도구입니다! 그러나 오전 8시에 작업이 예약되어 있고 그 시간에 시스템이 꺼져 있으면 시스템이 부팅 될 때마다 작업이 실행됩니다. 내가하고 싶은 일은 시간이 지나면 작업을 실행하지 못하게하는 것입니다. 온라인 설명서 페이지를 검색했지만 답변이 없거나 찾을 수 없습니다. 아치를 사용하고 있지만 아는 한 배포판에서 매우 비슷합니다.

어떤 도움이라도 대단히 감사합니다!



답변

직업은 언제 과거 직업이됩니까? 7:59:50에 시스템을 켜고 at데몬이에 시작되면 8:00:01작업을 실행해야합니까? 데몬이 7:59:59에 시작하지만 모든 파일을 읽는 데 2 ​​초가 걸리면 어떻게됩니까?

당신은 결정합니다! 시간 확인으로 작업을 시작하고 시간이 지난 경우 중단하십시오.

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

답변

종료 또는 재부팅시 모든 작업을 취소하는 init-script를 작성할 수 있습니다.

아치 리눅스에 대해 잘 모르겠습니다. /etc/sysconfig/at비슷한 것이 있습니까? 아마도 그것은 당신이 뒤집어 야하는 구성 스위치 일뿐입니다 …


답변

내 투표는 cron데몬에 대한 것 입니다.

하루 중 특정 시간에 실행해야하지만 매일 같은 시간에 실행하지 않으면 특정 실행 시간으로 하루에 하나의 항목 범위로 crontab을 작성합니다.

일부 예는 crontab(5)다음 과 같습니다.

# run five minutes after midnight, every day
5 0 * * *       command
# run at 2:15pm on the first of every month
15 14 1 * *     command
# run at 10 pm on weekdays
0 22 * * 1-5    command

답변

원하는 것은 cron 데몬입니다. 정확히 원하는 것을 수행합니다.

cron 데몬에 대한 즐겨 찾는 검색 엔진을 제공 하고 많은 매뉴얼과 지침이 있습니다. man cronman crontab도 도움이된다.


답변