답변:
이전 응답을 바탕으로 atq
작업 번호와 예약 된 시간을 표시 한 다음 각 작업의 행을 나열한 다음 실행할 명령을 작업 번호가 아닌 시간순으로 정렬하여 나열합니다.
for j in $(atq | sort -k6,6 -k3,3M -k4,4 -k5,5 |cut -f 1); do atq |grep -P "^$j\t" ;at -c "$j" | tail -n 2; done
예를 들어 생산
48 Fri Mar 10 15:13:00 2017 a root
/usr/local/bin/a-command
47 Fri Mar 10 15:14:00 2017 a root
/usr/local/bin/another-command
이에 atqc
대한 명령 을 작성 했습니다 ( "atq with command"). bash 함수. 이것을 bash 명령 행 (터미널 명령)에서 실행하십시오. 또는 ~/.bashrc
나중에 사용할 수 있도록 파일에 넣으십시오 .
atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }
그것을 테스트하십시오 :
atqc
RHEL7 at -V
버전 3.1.13에서 작동합니다 .
at -V
버전 3.1.18의 Ubuntu 16.04 는의 출력 형식이 약간 다르 at -c N
므로 Ubuntu 서버에서 다음과 같이 작동합니다.
atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}
at -c $(atq | cut -f 1)
또는for each in $(atq | cut -f 1)
"jobid를 찾을 수 없습니다"오류가 발생하지 않습니다. (또한 Bash는을 (를)for ((each=1; each<=MAXJOB; each++))
필요로하지 않습니다seq
. 이식성이 염려된다면#!/bin/sh
.)