atd가 과거 작업을 실행하지 못하게하는 방법은 무엇입니까?


9

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

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

답변:


7

직업은 언제 과거 직업이됩니까? 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
␄

2

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

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


이것이 최선의 해결책이라고 생각 합니다. 시작하기 at전에 부팅시 큐를 플러시하십시오 at.
bahamat

이것이 내가 기대하고 가능한 것입니다! 불행히도 /etc/sysconfig/Arch 에는 전혀 디렉토리 가 없습니다 ... 그리고 매뉴얼 페이지에 나열된 파일들 중 어느 것도 설정 파일이 아닙니다.
Elmer

@ Elmer 방금 구글에 아치 리눅스에 대해 읽었습니다. '/etc/rc.d/atd'는 at-daemon의 init-script 인 것 같습니다. 구성 파일을 구문 분석하는 것을 볼 수 있다면 거기를 살펴보십시오. 운이 좋지 않다면 자신의 init 스크립트를 사용해야합니다 (예 : 이름을 지정 atclear하고 이전에 실행 atd).
Nils

2

내 투표는 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

0

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

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


도움을 주셔서 감사하지만 cron은 내 문제로 작동하지 않습니다. 하루 중 특정 시간에 스크립트를 실행해야하지만 매일 같은 시간에 스크립트를 실행해야하지는 않습니다.
Elmer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.