web-dev-qa-db-ja.com

すべての「at」ジョブを削除します

スケジュールされたatジョブを削除するにはatrm "numjob1 numjob2"を使用する必要があることを知っていますが、すべてのジョブに対して簡単に実行できる方法はありますか?

36
robob

このコマンドを実行して、atqのすべてのジョブを削除できます

 for i in `atq | awk '{print $1}'`;do atrm $i;done
34
pradeepchhetri

あなたはこのようなことをすることができます:

for i in $(atq | cut -f 1); do atrm $i; done
12
DaveEmme

これは私には短い行のようです:

atrm $(atq | cut -f1)
7
user78969

より多くのAIX 6システムについては、あなたは単に行うことができます:

atrm -

参照: http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds1%2Fatrm.htm

2
Craig

中かっこを避け、うまくいけば直感的になる私のxargsバージョンは次のとおりです。

atq | cut -f 1 | xargs atrm

特定のジョブをタイムスタンプ/ユーザーIDでgrepしてから削除することもできます。

atq | grep "2018-10-22 16:" | cut -f 1 | xargs atrm
2
Thyag

Atdに5万8千を超えるジョブがありました(誰かがサーバーを再起動し、何らかの理由でatdサービスが開始されませんでした)。 atrmを使用してジョブを削除することは、非常に高いキューでは非常に困難です。

Atdを停止し、すべてのディレクトリを/ var/spool/atjobsから、ファイルを/ var/spool/atspoolから削除しました。私にとってはうまくいきました。

rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*
0
Felipe