私はFedora17、Gnome(3?)を実行していて、ターミナルからbashを使用しています。 lpstat
を実行するたびに、ジョブのリストしか取得できませんが、プリンターからジョブを取得するたびに、他の誰かが印刷していて、私のジョブはまだ開始されていません。何が得られますか?
自分だけでなく、すべてのユーザーの仕事のリストを表示したい。
lpq
を試しましたが無駄になりました。私も試しましたlpstat -t
そして同じ結果-私の仕事だけで、他の人の仕事ではありません。私はここで何が間違っているのですか?
lpstat -u all
(rootとして)は、現在キューに入れられているすべてのユーザーとすべてのジョブを表示する必要があります。
-u <logon-IDs>
ユーザーの出力要求のステータスを出力します。これには、次の1つまたはすべてが含まれます。
<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/pool/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