lp - order of files printed


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users lp - order of files printed
# 1  
Old 02-10-2004
lp - order of files printed

I have a shell script that is looping through a list of Postscript files to print.

ls -1tr *.PS > print.lst
...
PRINT_LIST=`cat print.lst`
...
for DMFILE in $PRINT_LIST
do
lp -d $PRINTER_NAME -o legal $DMFILE
...
done

The files in print.lst are in the order that they should be printed, however the order in which the files are printed appears to be completely random.

Here is a sample of print.lst, sequenced in the order to print

/prtspool/racprint/debitmemos/MNSF021.M0209137.PS
/prtspool/racprint/debitmemos/MNSF021.M0209138.PS
/prtspool/racprint/debitmemos/MNSF021.M0209139.PS
/prtspool/racprint/debitmemos/MNSF021.M0209140.PS
/prtspool/racprint/debitmemos/MNSF021.M0209141.PS
/prtspool/racprint/debitmemos/MNSF021.M0209142.PS
/prtspool/racprint/debitmemos/MNSF021.M0209143.PS
/prtspool/racprint/debitmemos/MNSF021.M0209144.PS

Here is the output from lpq:

active racuser 619 MNSF021.M0209137.PS 20200778 bytes
1st racuser 627 MNSF021.M0209145.PS 16781507 bytes
2nd racuser 621 MNSF021.M0209139.PS 20925819 bytes
3rd racuser 625 MNSF021.M0209143.PS 17315067 bytes
4th racuser 607 MNSF021.M0209125.PS 20202748 bytes
5th racuser 633 MNSF021.M0209151.PS 16825285 bytes
6th racuser 628 MNSF021.M0209146.PS 17372512 bytes
7th racuser 629 MNSF021.M0209147.PS 17078571 bytes
8th racuser 606 MNSF021.M0209124.PS 20928279 bytes
9th racuser 610 MNSF021.M0209128.PS 20928424 bytes

Why are the files printing in this seemingly random order? Is there a way that I can force the files to print in the order submitted?

Thanks, MB
# 2  
Old 02-13-2004
There may be a couple of reasons - but since you didn't post the OS and version, I'll just have to hope this also applies to your OS (it probably does)

Quote:
As implemented, the Solaris Operating System's (versions 9,8, and 7) LP spooling subsystem for receiving inbound print jobs, releases print jobs based on when they finish arriving versus when they were actually submitted (for performance reasons). Consequently, a small job submitted second from a client computer may actually arrive first and be released to a physical print device before a large job that was submitted first. This scenario has also been inherit to many other LPR/LPD printing implementations because their original designs all use at least 11 "logical ports" for sending data (LPR requests). Unfortunately, in some implementations, the receiving side (LPD) has not always taken responsibility for FIFO, either as a part of the standard design or as an option. This presents major operational problems in "statement", "invoice", and "check" printing environments.

What makes this problem particularly elusive and troublesome is the fact that by "chance" FIFO is generally maintained under Solaris LP. However, it is NOT guaranteed and is evident primarily when extremely small print jobs (<= 50 Kbytes) are intermixed with more normal or large sized print jobs. This problem has been discussed with Sun and they stand behind the current design and do not consider it to be a defect.
(quote from FIFO of print jobs )

And if I remember correctly, print queues will usually print smaller files first (no matter the OS) - could be a problem on a different print queue than just your OS. You need to also mention the how's and where's - is this a UNIX only print queue or does it ship it off to a LAN/WAN print queue in NT or some other OS?

You might look to see if there is a hold option for your lp command - if so, putting all printjobs on hold and then releasing once they are all there may solve your problem (you will still need to check that it's not going to re-arrange the jobs by size).
# 3  
Old 02-16-2004
Thanks for the followup, RTM. Sorry about the missing information. This problem is occurring on Solaris 8. Your response makes sense in that these files can vary in size.

Only one type of print is sent to the print queue in question. Typically, a large number of debit memos are sent to be printed at one time. The order is important to the people who process the debit memos. In an attempt to rectify, I have put a wait into the script between LP statements, hoping that the delay will allow the file to be processed and the order to be maintained. Seems to be working fine so far, but the sample size is small.

MB
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl command line option '-n','-p' and multiple files: can it know a file name of a printed line?

I am looking for help in processing of those options: '-n' or '-p' I understand what they do and how to use them. But, I would like to use them with more than one file (and without any shell-loop; loading the 'perl' once.) I did try it and -n works on 2 files. Question is: - is it possible to... (6 Replies)
Discussion started by: alex_5161
6 Replies

2. UNIX for Dummies Questions & Answers

Loop Through Files in Order and mapping

Hi there, How can I loop through files with order. I tried using ls .html | sort -v However the filename is with spaces:1233.61.47.0 - 121.61.123.112 nexpose.html Here is the original code that is working well, but I need to sort through the filename.echo "<center>" for file in *.html... (2 Replies)
Discussion started by: alvinoo
2 Replies

3. Shell Programming and Scripting

How to list files in ascending order?

Hi, I need to list files in ascending order. Filenames are in format inpTDT_1, inpTDT_2, inpTDT_3 and so on. I want to list them in the ascending order based on the digit after underscore and send the output to a file. Please help (5 Replies)
Discussion started by: Neelkanth
5 Replies

4. Shell Programming and Scripting

Recursively cat files in a directory with filename printed first.

I want to recursively cat the content of files in a directory e.g. find /etc -type f -exec cat {} \; But I want it to print the file name first and then the content. For example let's say /etc/statetab and /etc/colord.conf will be printed first then I want the output to look something like; ... (6 Replies)
Discussion started by: lewk
6 Replies

5. Shell Programming and Scripting

sort the files based on timestamp and execute sorted files in order

Hi I have a requirement like below I need to sort the files based on the timestamp in the file name and run them in sorted order and then archive all the files which are one day old to temp directory My files looks like this PGABOLTXML1D_201108121235.xml... (1 Reply)
Discussion started by: saidutta123
1 Replies

6. Shell Programming and Scripting

Comparing files enen when they are not in order

Hi, I have two master files which contain the information for many jobs like this Job no:1 a b c d Job no:1 d e g h Job no:2 t j s h Job no:2 t j s h I have written a script to pick up all the information for Job no:1 from file1 and put that to a temporary file and do the same from... (2 Replies)
Discussion started by: ragavhere
2 Replies

7. Shell Programming and Scripting

Order files by create date

hi Is there a way to sort files in the order they were created ,and move them to another directory one by one ,oldest being the first to be moved. Thanks Arif (4 Replies)
Discussion started by: mab_arif16
4 Replies

8. UNIX for Dummies Questions & Answers

How to exclude files from printed results

Hello I have application that part of its command I can get list of files to the stout . with the path . like : ./blah/blah/foo.c ./blah11/blah11/foo11.c ./blah12/blah12/foo11.h now I will like to filter this result and for instance see the "*.h" file or the "*.c" file or only the files... (2 Replies)
Discussion started by: umen
2 Replies

9. UNIX for Dummies Questions & Answers

list of files in date order

Im on HP/UX and am trying to find the command like an ll but that will sort showing the most currently modified programs first. Can anyone help me with that? :cool: (2 Replies)
Discussion started by: Jeannine
2 Replies

10. Shell Programming and Scripting

Listing files in numerical order

Hi, I'm trying to write a ksh script to copy a specified number of files from one directory to another. The files are named in the convention <switchname>_log.<num> and the numbers are sequential single digit onwards. I figured I could find some parameter for ls which would list the files in... (3 Replies)
Discussion started by: Steve_H
3 Replies
Login or Register to Ask a Question