Denendiğinde diğer cevap aşağıdakileri üretti:
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
Bir kullanıcı eklemek, saml
size kullanıcının geçmişini verir:
$ 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
Ancak -u all
bu U&L Soru-Cevap bölümünde adı geçen: Komut satırından tüm kullanıcıların yazdırma işlerini görüntüle benim için hiçbir şey yapmadı.
$ sudo lpstat -W completed -u all | head -2
$
Merakla yapabilirim:
$ 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
Bunu yapmanın hackish bir yolu, sisteminizdeki kullanıcıların bir listesini resmileştirmek ve daha sonra bunu aşağıdaki gibi bir -u
argümana bir alt komut olarak eklemek olacaktır :
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',')
Bunun tüm kullanıcıları yerel olarak gördüğünü göstermek için kullanıcılarınızın benzersiz bir listesini alabilirsiniz:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy
Sorunlar?
Bununla ilgili bir sorun, CUPS'a baskı yapan kullanıcının yerel olarak bir hesabı yoksa, görüntülenmeyecektir.
Ancak, LPD kontrol dosyalarınızı içeren bir dizininiz varsa, genellikle / var / spool / cups , you'll notice a bunch of control files in there. These files are kept as a result of the
MaxJobs` ayarıdır ve ayarlanmadığında varsayılan olarak 500'dür.
$ sudo ls -l /var/spool/cups/ | wc -l
502
Başka bir kullanıcı adı kaynağı mı?
Bu dosyalara bakarsanız, yalnızca sistemde bulunan hesaplar için değil, kullanıcı adları içerdiklerini fark edeceksiniz.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
Böylece, kullanıcı adını ve ardından B'yi içeren tüm girişleri seçebiliriz.
$ 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
Bu liste daha sonra, kullanıcıların listesini almak için kullandığımız şekilde aynı şekilde uyarlanabilir 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
Referanslar