lpr 명령을 사용하여 원격 컴퓨터에서 네트워크 프린터로 일부 파일을 인쇄하고 있습니다. 분명히 효과가 있었지만 몇 분 후에 lpstat 또는 lpq를 입력했을 때 작업이 이미 사라졌습니다. 이미 파일을 인쇄했을 것입니다. 프린터 대기열에서 성공적으로 완료된 작업의 기록 또는 로그를 확인하는 방법이 있습니까?
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
친절한 안부
lpstat -W completed -u user1,user2
..
시도했을 때 다른 대답은 다음을 생성했습니다.
$ 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