CUPS yazıcı işleri geçmişini nasıl gösterebilirim?


14

Lpr komutuyla uzaktaki bir bilgisayardan ağ yazıcısına bazı dosyalar yazdırıyorum. Görünüşe göre işe yaradı, ancak birkaç dakika sonra lpstat veya lpq yazdığımda, iş zaten kayboldu, muhtemelen dosyayı yazdırmıştı. Yazıcı kuyruğundaki başarıyla tamamlanan işlerimin geçmişini veya günlüğünü kontrol etmenin bir yolu var mı?


Elbette şu anda yazıcıya erişimim yok ve bu nedenle dosyanın yazdırılıp yazdırılmadığını kontrol edemiyorum.
Santi

Web arayüzü üzerinden kolaydır.
Faheem Mitha

Bu nedir, biraz daha açıklayabilir misiniz?
Santi

Yanıtlar:


30

Evet bir program var: lpstat- bardak durum bilgilerini yazdır

$ lpstat -W completed
-W which-jobs
     Specifies which jobs to  show,  completed  or  not-completed  (the
     default).  This option must appear before the -o option and/or any
     printer names, otherwise the default (not-completed) value will be
     used in the request to the scheduler.

Veya aşağıdaki web sayfalarından tercih ediyorsanız :

https://localhost:631/printers/[NameOfPrinter]?which_jobs=completed
http://localhost:631/jobs?which_jobs=completed

Saygılarımla


3
Bu yalnızca kullanıcı kimliğiniz için tamamlanmış olanı gösterir. Böyle kullanıcıların bir listesini verebilir: lpstat -W completed -u user1,user2.
slm

Lpstat'ın tamamlanmış yazdırma işi geçmişi için yuvarlanan penceresi var mı veya şimdiye kadar tamamlanmış olan tüm işleri gösteriyor mu?
chinnychinchin

5

Sanırım /var/log/cups/page_logtamamlanmış işlerin geçmişi var.

Alternatif olarak web arayüzü

http://localhost:631/ 

bu da tamamlanmış işleri gösterir. Web arayüzünün bilgilerini nereden aldığından emin değilim.


4

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, samlsize 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 allbu 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 -uargü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 theMaxJobs` 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


0

Yukarıdaki her cevap sadece tamamlanmış işlerle ilgileniyor gibi görünüyor ...

Kullanıcı veya yönetici tarafından iptal edilen işlerle de ilgileniyorsanız ne olur ? Sürücü veya diğer sorunlar nedeniyle yazdırma sisteminin kendisi tarafından kaç işin yarıda kesildiğini bilmek isterseniz ne olur ?

Bu durumlarda şunları kullanın:

lpstat -W all -o

Ayrıca, her iş hakkında daha fazla bilgi edinmek isteyebilirsiniz. Bu durumda -luzun bir çıktı biçimi ekleyin :

lpstat -l -W all -o

-2

Bu komut, etkin işlerin yanı sıra geçmişi de temizliyor gibi görünüyor:

sudo cancel -a -x
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.