从命令行查看所有用户的打印作业

从命令行查看所有用户的打印作业

我正在运行 Fedora 17、Gnome(3?),并从终端使用 bash。每当我运行时,lpstat我只会得到我的作业列表,但每次我从打印机检索我的作业时,其他人正在打印,而我的作业甚至还没有开始!是什么赋予了?

我想查看所有用户的工作列表,而不仅仅是我的工作。

我尝试过lpq但没有成功。我也尝试过lpstat -t,结果是一样的——只是我的工作,而不是其他人的。我在这里做错了什么?

答案1

接受的答案对我不起作用,但以下方法却有效。但是,如果您有一个包含 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

参考

答案2

虽然lpstat -u all在我的系统上不起作用,但在-u没有任何值的情况下指定时我可以看到其他用户的作业:

lpstat -u

答案3

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

相关内容