Microsoft公司以其Windows9x/2000等強大的攻勢占領操作系統市場,此時,大多數廠商已不能與之抗衡,而Linux作為一個全新且免費的操作系統正成為網絡系統中一只重要力量。隨著網絡技術的發展發揮的作用也將越來越大。眾所周知,“資源共享”在網絡中有著重要意義。筆者在實際工作中,對Linux與Windows9x/2000的資源共享有深入了解,下面就以如何實現“打印機”共享進行說明。
一 在Linux上使用Windows9x/2000上的打印機
Server Message Buffer(SMB)協議能夠實現Windows9x/2000局域網上打印機共享,Linux也能使用SMB實現與Windows9x/2000等操作系統上的打印機共享,其位於Samba軟件包中(Samba軟件包可以從提供免費的Linux網站上獲得)。實現Linux上使用Windows9x/2000上的打印機,設置步驟如下:
(1)正確安裝和配置Samba服務器。
(2)將運行Windows9x/2000上的打印機設置為共享。
(3)在Linux系統的/etc/printcap中為網絡打印機建立一個新的隊列,如下:
smb: \ :sd=/var/spool/lpd/smb: \ :mx # 0: \ :sh: \ :lp=/dev/null: \ :af=/var/spool/lpd/smb/acct: \ :if=/var/spool/lpd/smb/filter:
將Samba軟件包提供的smbprint拷貝到Samba安裝目錄/bin子目錄裡並設置成可執行模式。
(4)在/var/spool/lpd/smb/目錄下,創建打印過濾器文件filter。
# ! /bin/sh DEVICE=“打印機型號名稱(如:LJET4)” RESOLUTION=600*600 PAPERSIZE=“打印紙型號(如:A4)” SENDEOF= nenscript -TUS -ZB -p-| if [" $ DEVICE"="PostScript"]; then cat - | /usr/local/samba/bin/smbprint – else gs -q -s DEVICE=$DEVICE \ -r $RESOLUTION \ -s PAPERSIZE=$PAPERSIZE \ -d NOPAUSE \ -d SAFER \ -s Outputfile=-- | /usr/local/samba/bin/smbprint – fi if ["$ SENDEOF"!=""]; then printf"" fi exit 0
以上smbprint運行時需要一個.config的打印信息文件,這個文件在printcap定義的/var/spool/lpd/smb目錄下建立,如下:
server=“打印服務器名稱(如:SISKIN)”
service=“打印機型號名稱(如:LJET4)”
password=“網絡打印機共享名及口令”
(5)重新啟動打印管理器
# lpc restart all
(6) 打印
% lpr –P smb 文件名
需要注意的是:smbprint在第一次使用網絡打印隊列前,要保證/tmp下沒有smb-print.log這個缺省日志文件,它在smbprint第一次運行時會自動創建。
二 在Windwos9x/2000上使用Linux上的打印機
在Windows9x/2000看來Linux上的共享打印機分為PCL和PostScript兩種打印機,使用Linux中RedHat的printtool產生的打印機隊列,打印過濾器會自動區分PCL文件和其它格式的文件,所以從外界看來是PCL打印機。而本例使用的簡單打印過濾器產生的打印機隊列,沒有區分文本文件和PCL文件,必須使用PostScript打印機的驅動程序。設置步驟如下:
使用Linux上的Samba服務器將Linux上的打印機設置共享。
在Windows9x/2000中添加網絡打印機,即Linux上的共享打印機。
安裝相應型號打印機的PostScript網絡打印機驅動程序。
至此,Windows9x/2000上的打印作業轉換為PostScript文件,發送到Linux的網絡打印機上輸出。