Інша відповідь при спробі дала наступне:
$ 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 під назвою: Переглянути всі завдання друку користувача з командного рядка нічого не зробило для мене.
$ 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, зазвичай це , you'll notice a bunch of control files in there. These files are kept as a result of the
налаштування / var / spool / чашки 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
Список літератури