Command-Line

從命令行查看所有使用者的列印作業

  • April 14, 2021

我正在執行 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 theMaxJobs 設置,未設置時預設為 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

參考

引用自:https://unix.stackexchange.com/questions/63388