Làm thế nào để hiển thị lịch sử công việc máy in CUPS?


14

Tôi đang in một số tệp từ máy tính từ xa sang máy in mạng bằng lệnh lpr. Nó rõ ràng đã hoạt động, nhưng vài phút sau khi tôi gõ lpstat hoặc lpq, công việc đã biến mất, có lẽ nó đã in tệp. Có cách nào để kiểm tra lịch sử hoặc nhật ký công việc đã hoàn thành của tôi trong hàng đợi máy in không?


Tất nhiên tôi không có quyền truy cập vào máy in ngay bây giờ và do đó tôi không thể kiểm tra xem tệp đã được in hay chưa.
Santi

Thông qua giao diện web thật dễ dàng.
Faheem Mitha

Đó là gì, bạn có thể giải thích thêm một chút?
Santi

Câu trả lời:


30

Có một chương trình tồn tại: lpstat- in thông tin trạng thái cốc

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

Hoặc nếu bạn thích thông qua các trang web sau :

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

Trân trọng


3
Điều này sẽ chỉ hiển thị hoàn thành cho userid của bạn. Bạn có thể đưa ra một danh sách người dùng như thế này : lpstat -W completed -u user1,user2.
slm

Liệu lpstat có một cửa sổ cuộn cho lịch sử công việc in đã hoàn thành hay nó hiển thị tất cả các công việc đã từng hoàn thành?
chinnychinchin

4

tôi nghĩ /var/log/cups/page_log vv có lịch sử của công việc hoàn thành.

Một thay thế là giao diện web

http://localhost:631/ 

trong đó cũng cho thấy công việc đã hoàn thành. Tôi không chắc giao diện web lấy thông tin từ đâu.


4

Câu trả lời khác khi thử sản xuất như sau:

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

Thêm người dùng, samlcung cấp cho bạn lịch sử của người dùng đó:

$ 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

Nhưng câu hỏi -u allđược đề cập trong Hỏi & Đáp về U & L này có tiêu đề: Xem tất cả các công việc in của người dùng từ dòng lệnh không làm gì cho tôi.

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

Thật kỳ lạ tôi có thể làm điều này:

$ 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

Vì vậy, một cách hackish để làm điều này là chính thức hóa danh sách người dùng trên hệ thống của bạn và sau đó thêm nó dưới dạng một tiểu ban vào -uđối số như vậy:

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

Chỉ cần cho thấy rằng điều này nhìn thấy tất cả người dùng tại địa phương, bạn có thể nhận được một danh sách người dùng duy nhất của mình như vậy:

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

Vấn đề?

Một vấn đề với điều này là nếu người dùng in sang CUPS không có tài khoản cục bộ thì họ sẽ không được hiển thị.

Nhưng nếu bạn có một thư mục chứa các tệp kiểm soát LPD của mình, thông thường đó là , you'll notice a bunch of control files in there. These files are kept as a result of thecài đặt / var / spool / cup MaxJobs`, mặc định là 500 khi không đặt.

$ sudo ls -l /var/spool/cups/ | wc -l
502

Một nguồn tên người dùng khác?

Nếu bạn xem qua các tệp này, bạn sẽ nhận thấy rằng chúng chứa tên người dùng và không chỉ các tệp cho các tài khoản có trên hệ thống.

$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB

Vì vậy, chúng tôi có thể chọn tất cả các mục có chứa tên người dùng theo sau là 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

Danh sách này sau đó có thể được điều chỉnh theo cách giống như chúng tôi ban đầu đang sử dụng để lấy danh sách người dùng từ đó getent passwd, như vậy:

$ 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

Người giới thiệu


0

Mỗi câu trả lời ở trên dường như chỉ quan tâm đến việc hoàn thành công việc ...

Điều gì xảy ra nếu bạn cũng quan tâm đến các công việc đã bị hủy bởi người dùng hoặc quản trị viên? Điều gì sẽ xảy ra nếu bạn muốn biết có bao nhiêu công việc đã bị hủy bỏ bởi chính hệ thống in, do trình điều khiển hoặc các vấn đề khác?

Đối với những trường hợp này sử dụng:

lpstat -W all -o

Ngoài ra, bạn có thể muốn biết thêm chi tiết về từng công việc. Trong trường hợp này, thêm -lđịnh dạng đầu ra dài:

lpstat -l -W all -o

-2

Lệnh này xuất hiện để xóa lịch sử cũng như mọi công việc đang hoạt động:

sudo cancel -a -x
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.