[unix] 미래에 단일 이벤트가 발생하도록 예약하는 간단한 방법은 무엇입니까?

종종 컴퓨터가 단일 작업을 수행하기를 원하지만 지금은 그렇지 않습니다. 예를 들어, 퇴근 할 시간임을 30 분 안에 알려주도록 할 수 있습니다. 아니면 다른 대부분의 사람들이 사무실에서 퇴근 할 것이라고 확신 할 수있는 지금부터 2 시간 후에 복잡한 테스트를 실행하고 싶을 수도 있습니다.

나는 특정 시간에 실행할 크론 작업을 만들 수 있다는 것을 알고 있지만, 내가 원하는 모든 것이 “이 스크립트를 10 분 안에 실행하십시오”와 같은 단순한 작업 일 때 많은 작업처럼 보입니다. 실제로 지금부터 X 분 / 시간 / 일이되는 시간을 확인한 다음 완료되면 cron 작업을 삭제하십시오.

물론이 스크립트를 작성하고 백그라운드에서 실행할 수 있습니다.

sleep X
do_task

그러나 그것은 매우 어리석은 것처럼 보입니다 : 나는 각 작업에 대해 새로운 스크립트가 필요하거나 몇 분 안에 몇 초가 걸리는지 언급하지 말고 내가 원하는 것을 할 수있는 일반적인 스크립트를 작성하고 유지해야합니다. 몇 시간 또는 내가 원하는 날.

이 문제에 대해 이미 확립 된 해결책이 없습니까?



답변

나는 간단한 스크립트를 사용한다 at:

#!/bin/bash
# email reminder notes using at(1)...

read -p "Time of message? [HH:MM] " time
read -p "Date of message? [dd.mm.yy] " date
read -p "Message body? " message

at "$time" "$date" <<EOF
echo "$message" | mailx -s "REMINDER" me@gmail.com
EOF

당신은 할 수 그냥 쉽게 파이프로 $messagenotify-send또는 dzen당신이 데스크톱 알림 대신 이메일을 원하는 경우.


답변

사용하는 일반적인 방법 at

원하는 것을하는 스크립트를 작성하십시오. 모든 외부 명령에 대한 전체 경로를 사용하거나 출력을 적절한 로그 파일로 보내거나 우편으로 보내십시오.

스크립트를 테스트하십시오.

로 활성화 at -f YOURSCRIPT -t MMDDhhmm


답변