My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 操作系统 > Linux > Linux综合
[转帖]Samba使用大全(二)-Samba客户端
作者:未知 时间:2005-09-13 12:21 出处:ChinaUnix.net 责编:My FAQ
              摘要:[转帖]Samba使用大全(二)-Samba客户端

 
  
 
返回首页 业界资讯 源码世界 知识中心 技术论坛 在线培训 应用开发 解决方案 
   
 
 
 
  
 您的位置:首页 > 解决方案 > null > 服务器架设 > 查看文章内容    
  
==>操作提示<== 
〖发表注释〗 
〖常见问题〗 
   
==>搜索引擎<== 
 搜索  综合 业界资讯 源码世界 知识中心 在线培训 应用开发 解决方案 技巧提示  
 中的   
  
  
 

Samba使用大全(二)-Samba客户端

http://LinuxAid.com.cn 01-11-08 22:42 1025p grind
--------------------------------------------------------------------------------
 

Samba使用大全(二)-Samba客户端
使用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]
smb: > 
接下来的操作和ftp的时候命令一样,用get下载文件而用put上传文件,命令可以用help查看。
还有一种方法是用文件系统的方式(这种方式要确定你的内核支持smbfs,如果没有支持的话,编译内核的时候必须选中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名称/共享资源名 /本地挂接点 [-o option]
常用的的option有username=<用户名>,password=<密码>,guest(指定为用guest访问,不用提供密码,前面的即使用username=guest参数的话也会要求输入密码),ro(有时候为了系统安全要指定为只读模式),rw,同时多个option的话用逗号隔开。
或者可以用mount –t smbfs [–o option] //IP或者NETBIOS名称/共享资源名 /本地挂接点来实现同样的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount –t smbfs –o guest //glass/littlep /test,然后就能通过访问/test来使用网络上的资源了。
如果不需要使用的时候,可以简单地使用smbumount /test或者umount /test来解除这个挂接。
    关于samba的功能(共享Linux磁盘给Win95/NT、共享Linux打印机给win95/NT、共享win95/NT打印机给Linux机器。、共享Win95/NT磁盘给Linux机器),前面两个属于samba服务器的内容而后两个属于samba客户段的内容,在我的两篇文章中都有介绍了他们的实现方法,但是samba实在是一个强大的工具,无法十分详细地介绍它地全部功能,而且限于笔者的知识有限,有不到之处请各位指出,还望各位多多交流。

 
 


 m0772 回复于:2003-06-25 13:07:34
good

 zjwl7 回复于:2004-09-28 10:46:21
高!实在是高!

 zhaodahe 回复于:2005-03-22 22:52:39


 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有