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 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로 인쇄하는 사용자에게 로컬 계정이 없으면 표시되지 않습니다.
그러나 LPD 제어 파일이 포함 된 디렉토리가있는 경우 일반적으로 / var / spool / cups , you'll notice a bunch of control files in there. These files are kept as a result of the
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
참고 문헌
답변
위의 모든 답변은 완료된 작업 에만 관심이있는 것 같습니다 …
사용자 또는 관리자 가 취소 한 작업에 관심이있는 경우 어떻게 합니까? 드라이버 나 다른 문제로 인해 인쇄 시스템 자체에서 중단 된 작업 수를 알고 싶다면 어떻게해야 합니까?
이 경우 다음을 사용하십시오.
lpstat -W all -o
또한 각 작업에 대한 자세한 내용을 알고 싶을 수도 있습니다. 이 경우 -l
긴 출력 형식을 추가하십시오 .
lpstat -l -W all -o
답변
이 명령은 활성 작업뿐만 아니라 기록을 지우는 것처럼 보입니다.
sudo cancel -a -x