सीयूपीएस प्रिंटर नौकरियों के इतिहास को कैसे दिखाया जाए?


14

मैं एक दूरस्थ कंप्यूटर से lr कमांड के साथ नेटवर्क प्रिंटर पर कुछ फाइलें प्रिंट कर रहा हूं। यह स्पष्ट रूप से काम करता था, लेकिन कुछ मिनट बाद जब मैंने lpstat या lpq टाइप किया, तो नौकरी पहले ही गायब हो गई थी, यह शायद पहले से ही फ़ाइल को प्रिंट कर चुका था। क्या प्रिंटर कतार में इतिहास या मेरे सफलतापूर्वक पूर्ण किए गए नौकरियों के लॉग की जांच करने का कोई तरीका है?


बेशक मेरे पास अभी प्रिंटर तक कोई पहुंच नहीं है, और इसलिए मैं जांच नहीं कर सकता कि फ़ाइल मुद्रित हुई थी या नहीं।
संटी

वेब इंटरफ़ेस के माध्यम से यह आसान है।
फहीम मीठा

वह क्या है, क्या आप थोड़ा और समझा सकते हैं?
सैंटी

जवाबों:


30

हां एक कार्यक्रम मौजूद है: lpstat- प्रिंट कप स्टेटस की जानकारी

$ 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.

या यदि आप निम्नलिखित वेब पृष्ठों के माध्यम से पसंद करते हैं :

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

सधन्यवाद


3
यह केवल आपके उपयोगकर्ता के लिए पूरा दिखाएगा। आप इस तरह के उपयोगकर्ताओं की एक सूची दे सकते हैं lpstat -W completed -u user1,user2:।
स्लम

क्या lpstat में पूर्ण प्रिंट कार्य इतिहास के लिए एक रोलिंग विंडो है, या क्या यह उन सभी नौकरियों को दिखाता है जो कभी पूरे हुए थे?
चिनैनीचिन

5

मुझे लगता है कि /var/log/cups/page_logआदि के पास पूर्ण कार्य का इतिहास है।

एक विकल्प वेब इंटरफ़ेस है

http://localhost:631/ 

जो पूर्ण नौकरियों को भी दर्शाता है। मुझे यकीन नहीं है कि वेब इंटरफ़ेस को इसकी जानकारी कहाँ से मिलती है।


4

निम्नलिखित प्रयास करने पर दूसरा जवाब:

$ sudo lpstat -W completed
mfc-8480dn-1652         root              1024   Tue 28 Jan 2014 01:19:34 AM EST

एक उपयोगकर्ता जोड़ना, samlआपको उस उपयोगकर्ता का इतिहास देता है:

$ 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

लेकिन -u allइस U & L Q & A शीर्षक में उल्लिखित: देखें कि कमांड लाइन से सभी उपयोगकर्ता के मुद्रण कार्य ने मेरे लिए कुछ नहीं किया।

$ sudo lpstat -W completed -u all | head -2
$

उत्सुकता से मैं ऐसा कर सकता था:

$ 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

ऐसा करने का एक तरीका यह है कि आपके सिस्टम पर उपयोगकर्ताओं की एक सूची को औपचारिक रूप दिया जाए और फिर इसे उप- -uतर्क के रूप में इस तरह जोड़ें:

$ sudo lpstat -W completed -u $(getent passwd | \
    awk -F: '{print $1}' | paste -sd ',')

बस यह दिखाने के लिए कि यह सभी उपयोगकर्ताओं को स्थानीय रूप से देखता है आप अपने उपयोगकर्ताओं की एक अनूठी सूची प्राप्त कर सकते हैं जैसे:

$ sudo lpstat -W completed -u $(getent passwd | \
    awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy

मुद्दे?

इसके साथ एक समस्या यह है कि अगर CUPS पर उपयोगकर्ता की छपाई स्थानीय स्तर पर नहीं होती है तो वे प्रदर्शित नहीं होंगे।

लेकिन अगर आपके पास एक निर्देशिका है जिसमें आपकी एलपीडी नियंत्रण फाइलें शामिल हैं, तो आमतौर पर यह / var / स्पूल / कप , you'll notice a bunch of control files in there. These files are kept as a result of theमैक्सजॉब्स की सेटिंग है, जो कि परेशान होने पर 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

इसलिए हम उन सभी प्रविष्टियों का चयन कर सकते हैं जिनमें बी के बाद उपयोगकर्ता नाम शामिल है।

$ 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

संदर्भ


0

ऊपर दिया गया हर उत्तर केवल पूर्ण नौकरियों में रुचि रखता है ...

क्या होगा यदि आप उन नौकरियों में रुचि रखते हैं जो उपयोगकर्ता या एक व्यवस्थापक द्वारा रद्द कर दी गई थीं ? क्या होगा अगर आप जानना चाहते हैं कि ड्राइवर या अन्य समस्याओं के कारण प्रिंट सिस्टम ने कितनी नौकरियां खत्म कर दीं ?

इन मामलों के लिए उपयोग करें:

lpstat -W all -o

इसके अलावा, आप प्रत्येक नौकरी के बारे में अधिक जानकारी जानना चाह सकते हैं। इस मामले में -lएक लंबे आउटपुट स्वरूप के लिए जोड़ें :

lpstat -l -W all -o

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.