コマンドラインですべてのユーザーの印刷ジョブを表示する

コマンドラインですべてのユーザーの印刷ジョブを表示する

私は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

関連情報