font color="#CC0000">
概述
設置一個能夠處理多種內容形式的打印服務器,似乎並不是一個困難的任務--實際上也不難,只要考慮一下第三方軟件。當你決定只用lpadmin來做時,困難就來了。Unix系統治理專家Errol
Fouquet 和Robert Krumm 通過本文指導你用一個經檢驗過的方法,來設置一個打印服務器,使其能夠成功地處理純文本、PostScript、可打印二進制碼(pcl,rtl)等內容形式的文件。
作為UNIX系統治理員在與雇主簽約時,雇主要求他們在給客戶提供的服務中,要有一項是打印與繪圖的技術支持。一個非凡的客戶,他的打印環境相當復雜,包括八台36英寸HP繪圖儀,一台24英寸HP繪圖儀,大約20台HP
DeskJet 1600c繪圖儀,以及大約20台HP 3si/4si/5si 打印機。所有的設備運行LPD,有PostScript 驅動程序,作為網絡打印機使用TCP/IP協議來訪問。打印機網卡有HP
JetDirect 和XCD XJet 卡各占一半。
我們在一台Sun Ultra Enterprise 450 上運行Zeh Graphic Systems 的 ZPS繪圖軟件,來支持幾個輸出多種圖形格式的應用程序。我們還要支持從幾個其他的應用發出的LPD命令,以及用戶發自Netscape應用程序的打印,還有用戶在命令行下發出的打印命令。在我們的環境中,打印客戶幾乎都是SUN的服務器和工作站,數目有近200個。我們還有一台Windows
NT 服務器,運行Citrix Winframe,也是一個打印客戶。
進入討論組討論。
通過Zeh軟件繪圖的應用程序使用Ultra 450 作為緩沖池,除此以外,所有其他的打印請求都從客戶直接傳送到網絡打印機。從功能上講,這種方式工作得很好,能夠打印所有我們需要的內容形式,包括:文本,PostScript,和可打印二進制文件(pcl
和 rtl)。
<!-- frame contents -->
<!-- /frame contents -->
問題是這種設置帶來一個治理惡夢。像GIF 或 JPEG這樣龐大而又不可接受的二進制文件,經常會浪費大量的紙張,而我們又沒有簡單有效的辦法來確定打印請求是從那裡發出的。我們只知道大樓內的一台工作站或是服務器,正在向打印機發送有害的工作任務。不幸的是,標題頁並不是一個選擇,因為用戶不願浪費紙張(反語,哈哈?)。
我們曾經試圖寫一個 shell script程序,讓它掃描大樓內所有的機器,並把行為報告給特定的打印機。用這些信息我們就可以執行Cancel命令。但是這個方法異常緩慢,效率低下。
客戶自己的技術策略顯示,解決辦法就是為UNIX環境寫一個打 衿鞒絛颍遣呗員舊砻揮形庵峙渲錳峁┫附凇A硗猓罱蒘print Paranet做的NOMAN(network
operations management網絡操作治理)評估也認為,應該開發一個打印服務器程序來滿足客戶的需求。
我們知道一個打印服務器是正確的選擇。假如我們能夠設置好它,所有的打印請求都可以從一台機器上治理,這會極大地簡化整個過程。 但是這又非常困難,我們難以接受。
嘗試一:試驗和錯誤
最初,我們想建立一個標准的Solaris打印緩沖。我們指定一台測試機器作為測試打印服務器,取名 nolsn099 (一台運行Solaris 2.6的Ultra
1) ,並開始幾個測試。開始用來測試的打印機是一台HP 1600c,在 NIS/DNS環境中稱為no1316p。
對每一種服務器設置,客戶機用命令行 lpadmin -p no1316p -s nolsn099!no1316p 設置來訪問打印機/繪圖儀。
進入討論組討論。
服務器設置1:
lpadmin -p no1316p -o protocol=bsd,dest=no1316p -T PS
-I PostScript -v /dev/null -i /usr/lib/lp/model/netstandard
結果:客戶機能夠打印 PostScript和二進制文件,但是文本文件會出現樓梯效果。
<!-- frame contents -->
<!-- /frame contents -->