Другой ответ при попытке произвел следующее:
$ 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
Ссылки