Linux에서 특정 시간에 스크립트를 실행하는 방법은 무엇입니까? [닫은]


81

특정 날짜와 시간이 포함텍스트 파일이 있습니다. 해당 파일에 지정된 시간에 스크립트실행할 수 있기를 원합니다 . 어떻게 이룰 수 있겠습니까? 백그라운드에서 실행되는 다른 스크립트 (일종의 데몬)를 만들고 현재 시간이 파일의 시간과 일치하는지 매초마다 확인합니까? 다른 방법이 있습니까? 기계는 리눅스 서버, Debian wheezy입니다. 미리 감사드립니다


4
크론이 작동하지 않는 이유는 무엇입니까?
lreeder 2013-09-22

12
이 주제가 마감 된 이유는 무엇입니까 ?? 매우 합리적인 질문입니다. 구글 검색은 당신을 # 1로 이끌어줍니다. 그리고 대답은 꽤 멍청합니다. 이 대답 할 수있는 사람이 분명하다 그래서 영어 차단됩니다
리처드 드 REE를

2
@Richard 나는 StackOverflow가 이와 같은 많은 질문을 닫는 이유는 사용자가 주제에서 벗어난 질문을 적절한 StackExchange 사이트에 올리도록 장려하기 때문이라고 생각합니다. 이전에는 존재하지 않았던 새로운 SE 사이트가 꽤 많이 있습니다. 예를 들어, 주제에서 벗어난 매우 유용한 Vim 질문 이 몇 개 있는데, 이제 Vi / Vim SE가 있으므로 그 질문은 주제에 관한 것입니다. 그냥 생각 만 해. 그러나 이것은 여전히 ​​프로그래밍 질문처럼 보입니다
mgarey

2
Tbh 나는 그것을 배운 후에 매번 cron을 사용하는 방법을 잊고 있으며, 나는 고급이 필요하지 않습니다.
sudo

답변:


148

다음을보십시오.

echo "ls -l" | at 07:00

이 코드 줄은 특정 시간에 "ls -l"을 실행합니다. 이것은 특정 시간에 무언가 (제 예에서는 명령)를 실행하는 예입니다. "at"는 실제로 찾고 있던 명령입니다. 여기에서 사양을 읽을 수 있습니다.

http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.html http://manpages.ubuntu.com/manpages/xenial/man1/at.1posix.html

도움이 되었기를 바랍니다.


2
오류를 얻을 수 Can't open /var/run/atd.pid to signal atd. No atd running?있는 단서를?
HappyCoding

2
atd를 사용 하려면 데몬을 실행해야합니다 at. Manjaro OpenRC에, 당신은 단지 설치 at-openrc와 함께 데몬 ATD 서비스를 추가 sudo rc-update add atd및 시작 sudo rc-service atd start. 일반적으로 at패키지에는 이미 systemd시작될 수있는 서비스 (Ubuntu를 포함한 다양한 배포 Linux의 기본 init / service 시스템)가 포함 sudo systemctl start atd되어 있으며 sudo systemctl enable atd.
Manoel Vilela

8
제 경우에는 "job 6 at 2017-08-21 10:53"이 즉시 출력됩니다 ...
Jewenile

BTW, 내 bash 문서는 at -c사용법을 설명 합니다. 명령을 실행하는 방법이 std in으로 파이프하는 것이라면 무엇입니까?
Tom Russell

당시 시스템 전원이 꺼진 경우이 스크립트가 나중에 실행됩니까?
shrijit

18

at명령은 특히이 목적을 위해 존재합니다 ( cron반복 작업을 예약하기위한 것과 달리 ).

at $(cat file) </path/to/script

1
bash로, 당신은 쓸 것입니다$(< file)
glenn jackman

10

Cron 은 매주 토요일 오전 4시와 같이 주기적으로 실행되는 것에 좋습니다. 전원 차단, 절전 및 기타 문제를 해결하는 anacron있습니다 . 뿐만 아니라 에서 .

그러나 루트 나 그 어떤 것도 필요하지 않은 일회성 솔루션의 경우 날짜 를 사용하여 현재 시간뿐만 아니라 대상 시간의 기점 이후 초를 계산 한 다음 expr 을 사용 하여 차이를 찾을 수 있습니다. 잠이 많은 초.


10
at기계가 그 동안 재부팅되는 경우에도 작업이 예정된 상태로 유지됩니다.
tripleee

8

일반적으로 Linux crontab에서는 이러한 종류의 복잡한 작업에 사용합니다. 그러나 "타이머를 설정"할 때 시간을 지정해야합니다. 따라서 파일 자체에서 구성 할 수 있도록하려면이를 수행하는 몇 가지 메커니즘을 만들어야합니다.

그러나 일반적으로 다음과 같이 사용합니다.

30 1 * * 5 /path/to/script/script.sh

매주 금요일 오전 1시 30 분에 스크립트를 실행합니다.

30

1 시간이다

다음 2 개의 *는 day of monthand month(순서대로)이며 5평일입니다.


2
그럼 어떻게 그 명령을 발동 시키겠습니까?
Aaron Ullal 2013 년

1
Crontab Guru ( crontab.guru )는 crontab 구성에 유용한 도구입니다.
Umesh .A Bhat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.