刚才在外国的网站上研究了半天的E文,想不到这个网站[url]http://linuxaid.com.cn/[/url]上这篇文章说得更周到了。我faint!

[color=green:834eb94ef0][size=25:834eb94ef0]Samba使用大全(二)-Samba客户端[/size:834eb94ef0]

摘要
Samba使用大全(二)-Samba客户端(2002-06-24 14:33:0

-------------------------------------------------------------------------
By ideal


使用Samba网络打印:
  使用unix网络打印以前的文章比较少涉及,最近试验了一下,效果还是不错的,现在讲讲基本的实现方法:

  比如您要建立一台网络打印机grind,而打印机对应网络上面的//glass/HPLaserj,任何需要配置的文档有下面几个:

1./etc/printcap,内容一般为:

  grind:

:sh: #禁止提示的header
:ml=0: #打印的文档的长度下限,
:mx=0: #最大的打印文档大小,0为不限制
:sd=/var/spool/lpd/grind: #打印机的spool目录
:lp=|/usr/bin/smbprint: #打印输出需要的设备名或管道名
:lpd_bounce=true: #强制lpd守护进程过滤打印文档
:if=/usr/share/printconf/mf_wrapper: #过滤命令文档

2.smbprint这个一般在安装完smb相关的rpm包以后就有了,主要内容是:

eval acct_file=$$#
spool_dir=`dirname $acct_file`
config_file=$spool_dir/.config
eval `cat $config_file`
share=`echo $share | sed "s/[]///g"`
if [ "$user" != "" ]; then
usercmd="-U"
else
usercmd=""
fi
if [ "$workgroup" != "" ]; then
workgroupcmd="-W"
else
workgroupcmd=""
fi
if [ "$translate" = "yes" ]; then
command="translate ; print -"
else
command="print -"
fi
cat | /usr/bin/smbclient "$share" "$password" -E ${hostip: -I}
$hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup"
-c "$command" 2>/dev/null

3.mf_wrapper是个magic filter文档,是相关的一些过滤规则。内容是:

MF_RULE_DIR='/usr/share/printconf/mf_rules'
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX`' 'exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE
if [ -n "$DEBUG" ]; then
case "$DEBUG" in
2)
DEBUGSTRING="--debug --debug"
;;
3)
DEBUGSTRING="--debug --debug --debug"
;; 4)
DEBUGSTRING="--debug --debug --debug --debug"
;;
5)
DEBUGSTRING="--debug --debug --debug --debug --debug"
;;
*)
DEBUGSTRING="--debug"
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
if [[ $RETVAL -eq 0 ]]; then
TERMINATION=`grep '^[[:space:]]*#[[:space:]]*TERMINATION=' ./mf.cfg | se
d 's/^[[:space:]]*#[[:space:]]*TERMINATION=//;'`
if [ -n $TERMINATION ]; then
echo -n -e $TERMINATION;
fi
fi

同时需要在/var/spool/lpd/grind下面有这么两个文档:mf.cfg和script.cfg。

mf.cfg的内容是:

define(TEXTfilter, text ""
14 dnl
define(PSfilter, `filter /usr/share/printconf/util/mf_postscript_wrapper --mfomatic -d lj5gray-75168.foo')dnl

script.cfg的内容是:

share="//glass/HPLaserj" #glass机器上面共享的打印机
hostip="192.168.1.123" #glass这台机器的IP
user=""
password=""
workgroup=""
translate="no"

完成这个工作后,启动lpd进程,然后就能用lpr等命令使用网络打印机打印了。

使用网络共享文档资源:
列出网络资源:

  一般能够用smbclient来列出某台机器相关的资源,smbclient的用法参考http://www.linuxaid.com.cn/training/tods/showtod.jsp?i=241。这里讲比较有用的使用方法:
smbclient –L IP或NETBIOS名称,作用是显示某台提供samba服务的服务器上的共享资源。命令执行效果如下:

smbclient –L glass
Sharename Type Comment
--------- ---- -------
IPC$ IPC 远程 IPC
HPLaserJ Printer HP LaserJet 6P
ADMIN$ Disk 远程管理
littlep Disk
C$ Disk 默认共享
Server Comment
--------- -------
GLASS
GRIND
Workgroup Master
--------- -------
BLUESUN GLASS
WORKGROUP HEIHEI

  第一段列举了该机器(glass)上面的共享资源,第二段列举了glass所在的工作组里面任何提供samba服务的机器,第三列举了其他工作组提供browse服务的Master机器(关于Master和Browse服务能够参考我的前面一篇samba使用大全-samba服务器)。

使用网络资源:

smbclient //IP或NETBIOS名称/共享资源名 [-U 用户名]

命令执行效果如下:

smbclient //glass/littlep
added interface ip=192.168.1.123 bcast=192.168.1.255 nmask=255.255.255.0
Got a positive name query response from 192.168.1.123 (192.168.1.123)
Password:
Domain=[BLUESUN] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!