GNU/Linux >> Linux の 問題 >  >> Linux

at ジョブの内容を印刷するにはどうすればよいですか?

解決策 1:

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 

おそらくそれを行うためのより短い方法があります。私はそれを頭から飛び出しました:)

解決策 2:

以前の応答に基づいて、これは 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

解決策 3:

より単純なアプローチ:

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

解決策 4:

コマンド atqc を作成しました このために(「コマンドを使用したatq」)。バッシュ関数。これを bash コマンド ライン (ターミナル コマンド) で実行します。または ~/.bashrc に入れます 後で使用できるようにするためのファイル:

atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }

テスト:

atqc

at -V の RHEL7 で動作します バージョン 3.1.13.

at -V の Ubuntu 16.04 バージョン 3.1.18 の at -c N では出力形式が若干異なります 、したがって、私のUbuntuサーバーではこれが機能します:

atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}

Linux
  1. Linuxで圧縮ファイルの内容を表示する方法

  2. Crontabを使用してcronジョブをスケジュールする方法

  3. アセンブリNASMで数値を出力するには?

  1. LinuxターミナルでJSONファイルをきれいに印刷する方法

  2. psを印刷グループにするにはどうすればよいですか?

  3. 停止したすべてのジョブを強制終了するにはどうすればよいですか?

  1. cronジョブを削除する方法

  2. pthread_t を出力する方法

  3. バックグラウンドプロセスのプロセスIDを取得するには?