CUPS 프린터 작업 기록을 표시하는 방법? 몇 분 후에 lpstat

lpr 명령을 사용하여 원격 컴퓨터에서 네트워크 프린터로 일부 파일을 인쇄하고 있습니다. 분명히 효과가 있었지만 몇 분 후에 lpstat 또는 lpq를 입력했을 때 작업이 이미 사라졌습니다. 이미 파일을 인쇄했을 것입니다. 프린터 대기열에서 성공적으로 완료된 작업의 기록 또는 로그를 확인하는 방법이 있습니까?



답변

예, 프로그램이 존재합니다 : 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

친절한 안부


답변

나는 /var/log/cups/page_log등 완료된 작업의 역사를 가지고 있다고 생각 합니다.

대안은 웹 인터페이스입니다

http://localhost:631/

완료된 작업도 표시합니다. 웹 인터페이스가 어디에서 정보를 얻는 지 잘 모르겠습니다.


답변

시도했을 때 다른 대답은 다음을 생성했습니다.

$ 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 allU & 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로 인쇄하는 사용자에게 로컬 계정이 없으면 표시되지 않습니다.

그러나 LPD 제어 파일이 포함 된 디렉토리가있는 경우 일반적으로 / var / spool / cups , you'll notice a bunch of control files in there. These files are kept as a result of theMaxJobs` 설정이며, 설정을 해제하면 기본값은 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

참고 문헌


답변

위의 모든 답변은 완료된 작업 에만 관심이있는 것 같습니다 …

사용자 또는 관리자 가 취소 한 작업에 관심이있는 경우 어떻게 합니까? 드라이버 나 다른 문제로 인해 인쇄 시스템 자체에서 중단 된 작업 수를 알고 싶다면 어떻게해야 합니까?

이 경우 다음을 사용하십시오.

lpstat -W all -o

또한 각 작업에 대한 자세한 내용을 알고 싶을 수도 있습니다. 이 경우 -l긴 출력 형식을 추가하십시오 .

lpstat -l -W all -o


답변

이 명령은 활성 작업뿐만 아니라 기록을 지우는 것처럼 보입니다.

sudo cancel -a -x


답변