CUPSでジョブのタイムスタンプを表示する方法を探しています。マニュアルページを検索しましたが見つかりません。
長期的な目標は、サーバーの過負荷を防ぐためにjobIDの時間を解析し、特定の年齢よりも古いジョブを自動的に削除できるスクリプトを持つことです。私のCUPSサーバーには2000を超える印刷キューがあります。
ベストアンサー1
私はU&Lウェブサイトでこれを達成するための可能な方法についてのヒントを提供する2つの質問を見つけました。これら2つの質問:
lpstat
あなたが望むものを得るためにそれを使用できることを示唆しているようです。次のコマンドを実行できることがわかりました。
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
これ:
$ sudo lpstat -W completed -u saml | head -2
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM EST
mfc-8480dn-1526 saml 699392 Sat 30 Nov 2013 10:34:34 AM EST
しかし、彼らは-u all
私に何の利益も与えませんでした。
$ sudo lpstat -W completed -u all | head -2
$
奇妙なことは、私がこれを行うことができるということです。
$ sudo lpstat -W completed -u saml,root | head -3
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM EST
mfc-8480dn-1526 saml 699392 Sat 30 Nov 2013 10:34:34 AM EST
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
したがって、ハッキングはシステムのユーザーリストを正式に決定し、それを-u
次のようにパラメータにサブコマンドとして追加することです。
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',')
すべてのユーザーをローカルで表示できることを示すために、次のユニークなユーザーのリストを取得できます。
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy
質問?
この問題の1つは、CUPSで印刷するユーザーがローカルアカウントを持っていない場合、そのアカウントが表示されないことです。
ただし、LPD制御ファイルを含むディレクトリがある場合は、通常/var/spool/cups , you'll notice a bunch of control files in there. These files are kept as a result of the
MaxJobsが設定され、設定されていない場合、デフォルトは500です。
$ sudo ls -l /var/spool/cups/ | wc -l
502
ユーザー名の別のソースは何ですか?
これらのファイルを見ると、システムに存在するアカウントのユーザー名だけでなく、ユーザー名も含まれていることがわかります。
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
したがって、ユーザー名の後にBを含むすべての項目を選択できます。
$ sudo strings /var/spool/cups/* | grep -A 1 job-originating-user-name | \
grep -oP '.*(?=B)' | sort -u
ethan
guest-AO22e7
root
sam
saml
slm
tammy
getent passwd
その後、このリストは、元の次のようにユーザーリストを取得するために使用したのと同じ方法で調整できます。
$ sudo lpstat -W completed -u $(strings /var/spool/cups/* | \
grep -A 1 job-originating-user-name | \
grep -oP '.*(?=B)' |sort -u | paste -sd ',')
mfc-8480dn-1525 tammy 545792 Thu 28 Nov 2013 01:36:59 PM EST
mfc-8480dn-1526 saml 699392 Sat 30 Nov 2013 10:34:34 AM EST
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
mfc-8480dn-1672 saml 1024 Sun 09 Feb 2014 01:56:26 PM EST