Linux
查看 CUPS 列印作業的時間戳
我正在尋找一種在 CUPS 中查看作業時間戳的方法。我已經搜尋了手冊頁,但似乎找不到它。
長期目標是有一個腳本來解析來自 jobID 的時間,並自動刪除任何超過特定年齡的作業 - 以避免伺服器過載。我的 CUPS 伺服器有超過 2000 個列印隊列。
我在 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
問題?
這樣做的一個問題是,如果列印到 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
參考