No meu sistema Debian, at
classifica os trabalhos no momento em que eles estão programados para iniciar e não a ordem que eles receberam para at
in:
$ for i in 10 20 30 40 50 60 70; do
at now + "$i" min < scripts/foo.sh; sleep 1;
done
warning: commands will be executed using /bin/sh
job 8 at Sat Apr 18 15:31:00 2015
warning: commands will be executed using /bin/sh
job 9 at Sat Apr 18 15:41:00 2015
warning: commands will be executed using /bin/sh
job 10 at Sat Apr 18 15:51:00 2015
warning: commands will be executed using /bin/sh
job 11 at Sat Apr 18 16:01:00 2015
warning: commands will be executed using /bin/sh
job 12 at Sat Apr 18 16:12:00 2015
warning: commands will be executed using /bin/sh
job 13 at Sat Apr 18 16:22:00 2015
warning: commands will be executed using /bin/sh
job 14 at Sat Apr 18 16:32:00 2015
$ atq
9 Sat Apr 18 15:41:00 2015 a terdon
11 Sat Apr 18 16:01:00 2015 a terdon
10 Sat Apr 18 15:51:00 2015 a terdon
12 Sat Apr 18 16:12:00 2015 a terdon
8 Sat Apr 18 15:31:00 2015 a terdon
14 Sat Apr 18 16:32:00 2015 a terdon
13 Sat Apr 18 16:22:00 2015 a terdon
Como você pode ver, at
numerará os trabalhos na ordem em que serão executados, mas atq
os listará em uma ordem aparentemente aleatória.
-
Para remover os primeiros 5 trabalhos listados por
atq
, você pode fazer:atrm $(atq | head -5 | cut -f 1)
-
Para excluir os primeiros 5 trabalhos com base na ordem em que serão lançados, faça:
atrm $(atq | sort -n | head -5 | cut -f 1)