사용하여 예약 된 작업이있는 데비안 상자가 있습니다 at
. 나는 시간을 사용하여 작업을 나열 할 수 atq
있지만 엿보기와는 별도로 내용을 인쇄 할 수있는 방법이 /var/spool/cron/atjobs
있습니까?
답변
at -c jobnumber
단일 작업을 나열합니다. 당신이 그들 모두를보고 싶다면, 당신은 같은 스크립트를 만들 수 있습니다
#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done
아마도 더 짧은 방법이있을 수 있습니다.
답변
이전 응답을 바탕으로 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
답변
훨씬 간단한 접근법 :
for j in $(atq | cut -f 1); do at -c "$j"; done
당신은 또한 less
차례로 하나씩 볼 수 있습니다.
for j in $(atq | cut -f 1); do at -c "$j" | less; done
답변
이에 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"';}