Command-Line
從命令行查看所有使用者的列印作業
我正在執行 Fedora 17、Gnome(3?),並從終端使用 bash。每當我執行時,
lpstat
我只會得到一份我的作業列表,但每次我從列印機中檢索我的作業時,其他人正在列印,而我的甚至還沒有開始!是什麼賦予了?我想查看所有使用者的工作列表,而不僅僅是我的。
我試過
lpq
無濟於事。我也嘗試過lpstat -t
同樣的結果——只是我的工作,而不是其他任何人的。我在這裡做錯了什麼?
lpstat -u all
(以 root 身份)應顯示目前排隊的所有使用者和所有作業:-u <logon-IDs>
為使用者列印輸出請求的狀態,其中可以是以下一項或全部:
<user>
- 本地系統上的使用者,如lpstat -u user
<host!user>
- 系統上的使用者,如lpstat -u systema!user
<host!all>
- 特定係統上的所有使用者,如lpstat- u systema!all
<all!user>
- 所有系統上的特定使用者,如lpstat -u all!user
all
- 指定的所有系統上的所有使用者,如lpstat -u all
接受的答案對我不起作用,但以下方法起作用。但是,如果您有一個包含 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
參考