我正在运行 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 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
参考
答案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