CUPS Purging not-completed print jobs older than..
Mar 25, 2022

CUPS Purging not-completed print jobs older than..

When working with CUPS using remote print queues, you may find that the remote printer is not always available, has timed out, ran out of paper, has a paper jam, etc. Sometimes this causes a job to 'not-complete' and when running 'lpstat -o', you see old print jobs.We put together a quick script to auto-purge these jobs. Hopefully this helps someone in the future.Please let us know if you found this useful, or if you have any suggested changes.
#!/usr/bin/python
#
# Purge print jobs that are not-complete and older than 10 days.
#
from datetime import date, timedelta, datetime
import time
import os
howmanydaysago=10
today=date.today()
daysago=today-timedelta(days=howmanydaysago)
epoch_today=time.mktime(today.timetuple())
epoch_daysago=time.mktime(daysago.timetuple())
date_difference=epoch_today-epoch_daysago
for line in os.popen('/usr/bin/lpstat -o').readlines():
data = line.strip().split()
job=data[0].split('-')
#15 Apr 2008 12:00:00
date_time=data[4]+" "+data[5]+" "+data[6]+" 12:00:00"
pattern = '%d %b %Y %H:%M:%S'
epoch_job = int(time.mktime(time.strptime(date_time, pattern)))
difference=epoch_today - epoch_job
if difference > date_difference:
print "Canceling pending job: "+str(job[-1])
os.popen('/usr/bin/cancel '+str(job[-1]))

Related posts

Browse more
We haven't published any posts