Workaround for non-unique print spool file names

Warren Smith warren at
Thu Sep 28 13:49:38 GMT 2000

Several days ago, I posted a description of a problem I was having that I
thought was being caused by samba not generating unique print spool file
names.  I have since confirmed that conclusion.

Since the only reply I got to that post was a post from Christian
Günsel saying that he was having the same problem and I couldn't wait for it
to be fixed in samba, it fell upon me to come up with a simple workaround.

I credit Christian for the idea of doing something with the file in the print
command.  I wrote the program in python only because it is my scripting language
of choice.  This could easily be done with a shell script, though it would
require more processes to be run to accomplish the same operations.

Here it is:


	print command = /usr/local/sbin/print_samba_job %u %p %f



import sys
import os
import time

# Get Arguments
user = sys.argv[1]
printer = sys.argv[2]
oldfilename = sys.argv[3]

# Construct a unique filename from user, current time, and current pid.
# Our spool files are deleted every night, so date is not necessary in our
# filename.
newfilename = '%s.%s.%s' % (user,time.strftime('%H%M%S',time.localtime(time.time())),os.getpid())

# Rename (possibly) non-unique filename to filename just constructed

# Execute print command
# FreeBSD will not remove spool files if the -s option is specified, so I left
# the -r option out on purpose.  Other platforms may not have this affliction.
os.system('/usr/bin/lpr -s -P %s %s' % (printer,newfilename))


PS: Christian, hope this helps.  Thanks for the idea.

Warren Smith
Chief Engineer
CSW Net, Inc.
warren at

More information about the samba mailing list