Jawaban lain ketika dicoba menghasilkan yang berikut:
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
Menambahkan pengguna, saml
memberi Anda riwayat pengguna itu:
$ sudo lpstat -W completed -u saml | head -2
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM EST
mfc-8480dn-1526 saml 699392 Sat 30 Nov 2013 10:34:34 AM EST
Tetapi yang -u all
disebutkan dalam U&L Q&A berjudul: Melihat semua pekerjaan pencetakan pengguna dari baris perintah tidak melakukan apa pun untuk saya.
$ sudo lpstat -W completed -u all | head -2
$
Anehnya saya bisa melakukan ini:
$ sudo lpstat -W completed -u saml,root | head -3
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM 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
Jadi salah satu cara meretas untuk melakukan ini adalah dengan memformalkan daftar pengguna pada sistem Anda dan kemudian menambahkannya sebagai sub- -u
perintah pada argumen seperti:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',')
Hanya untuk menunjukkan bahwa ini melihat semua pengguna secara lokal Anda bisa mendapatkan daftar unik dari pengguna Anda seperti:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy
Masalah?
Satu masalah dengan ini adalah jika pengguna yang mencetak ke CUPS tidak memiliki akun secara lokal maka mereka tidak akan ditampilkan.
Tetapi jika Anda memiliki direktori yang berisi file kontrol LPD Anda, biasanya itu adalah , you'll notice a bunch of control files in there. These files are kept as a result of the
pengaturan / var / spool / cups MaxJobs`, yang secara default menjadi 500 ketika tidak disetel.
$ sudo ls -l /var/spool/cups/ | wc -l
502
Sumber nama pengguna lain?
Jika Anda melihat file-file ini Anda akan melihat bahwa itu berisi nama pengguna, dan bukan hanya untuk akun yang ada di sistem.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
Jadi kita bisa memilih semua entri yang berisi nama pengguna diikuti oleh 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
Daftar ini kemudian dapat diadaptasi dengan cara yang sama seperti yang awalnya kami gunakan untuk mengambil daftar pengguna getent passwd
, seperti:
$ 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
Referensi