จะแสดงประวัติงานเครื่องพิมพ์ CUPS ได้อย่างไร?


14

ฉันกำลังพิมพ์ไฟล์บางไฟล์จากคอมพิวเตอร์ระยะไกลไปยังเครื่องพิมพ์เครือข่ายด้วยคำสั่ง lpr เห็นได้ชัดว่าใช้งานได้ แต่ไม่กี่นาทีต่อมาเมื่อฉันพิมพ์ lpstat หรือ lpq งานได้หายไปแล้วมันอาจพิมพ์ไฟล์ไปแล้ว มีวิธีการตรวจสอบประวัติหรือบันทึกของงานที่เสร็จสมบูรณ์ในคิวเครื่องพิมพ์หรือไม่


แน่นอนฉันไม่สามารถเข้าถึงเครื่องพิมพ์ได้ในตอนนี้และดังนั้นฉันจึงไม่สามารถตรวจสอบว่าไฟล์ถูกพิมพ์หรือไม่
Santi

ผ่านทางเว็บอินเตอร์เฟสมันเป็นเรื่องง่าย
Faheem Mitha

นั่นคืออะไรคุณช่วยอธิบายเพิ่มเติมอีกเล็กน้อยได้ไหม
Santi

คำตอบ:


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คุณสามารถให้รายการของผู้ใช้เช่นนี้:
slm

lpstat มีหน้าต่างกลิ้งสำหรับประวัติงานพิมพ์ที่เสร็จสมบูรณ์หรือไม่หรือแสดงงานทั้งหมดที่เคยเสร็จสมบูรณ์หรือไม่
chinnychinchin

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 นี้: ดูงานพิมพ์ของผู้ใช้ทั้งหมดจากบรรทัดคำสั่งไม่ได้ช่วยอะไรฉัน

$ 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 ไม่มีบัญชีอยู่ภายในเครื่องพวกเขาจะไม่ปรากฏขึ้น

แต่ถ้าคุณมีไดเรกทอรีที่มีไฟล์ควบคุม LPD ของคุณโดยทั่วไปคือ, you'll notice a bunch of control files in there. These files are kept as a result of theการตั้งค่า/ var / spool / cups MaxJobs` ซึ่งจะมีค่าเริ่มต้นเป็น 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

อ้างอิง


0

ทุกคำตอบข้างต้นดูเหมือนจะสนใจในงานที่เสร็จแล้วเท่านั้น...

หากคุณสนใจงานที่ผู้ใช้หรือผู้ดูแลระบบยกเลิกด้วย ถ้าคุณต้องการทราบจำนวนงานที่ถูกยกเลิกโดยระบบการพิมพ์เองเนื่องจากไดรเวอร์หรือปัญหาอื่น ๆ

สำหรับกรณีเหล่านี้ใช้:

lpstat -W all -o

นอกจากนี้คุณอาจต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับแต่ละงาน ในกรณีนี้เพิ่ม-lสำหรับรูปแบบผลลัพธ์ยาว:

lpstat -l -W all -o

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.