at
나는 항상 특정 날짜와 시간에 이메일이 전송되도록 예약하는 습관을 갖고 있었습니다 . 문제는 내가 at
실행하려는 명령이 작업 ID를 매개변수로 사용해야 하므로 명령을 생성하는 사람이 내가 되어야 한다는 것입니다. 게다가 at
사용되는 것은 ID가 아니라 자동 증가 개수이므로 재설정할 때 걱정해야 합니다.
내 주요 쿼리는 맞춤 ID를 사용하여 새 위치를 만드는 것입니다. 이는 다음을 사용하여 작업을 생성할 때 echo "touch file" | at now + 1 minute
다음과 같을 수 있음을 의미합니다 echo "touch file" | at -i <custom-id> now + 1 minute
. 따라서 을 클릭하면 atq
다음을 찾을 수 있습니다 <custom-id> Mon Feb 24 19:00:00 2020 a user
.
그렇다면 OR을 사용하여 작업을 생성할 때 작업을 사용자 정의할 수 있는 방법이 있습니까? at
아니면 더 확장성이 뛰어난 오픈 소스 대안이 있습니까?
답변1
at
이 유형의 코드를 사용하여 제출된 작업 번호를 얻을 수 있습니다. 이 예제에서는 5분 동안만 대기하는 작업을 제출하므로 이를 조정해야 합니다. 제출 결과 at
는 아래와 같 job 1175 at Mon Feb 24 18:28:00 2020
으며 grep
명령은 이와 일치하여 작업 번호를 추출합니다.
job=$( echo "sleep 300" | at now 2>&1 | grep -oP 'job\s+\K\d+' )
echo "The job identifier is $job"
작업 번호는 에 제출될 때까지 식별할 수 없습니다 at
.