分享
 
 
 

SMB的扩展应用

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在Linux风行的今天,与Windows机器相互共享文件已经是非常普遍的应用了,关于samba的设置的文档也相当的多,本站也有不少了。不过在使用它的高级功能方面还是比较欠缺的,这类文档是非常稀有的,而且只有英文版的,为了方便国内的Linux用户,我将这些文档整理一下,翻译过来,并结合自己一些经验,为大家提供一些帮助。

注:这篇文章并不是一篇关于如何配置samba的基础文档,而是需要阅读者有一定的Linux使用经验,熟悉脚本语言,并且对samba有一定的使用经验。主要是针对于一些企业的Linux网管,或比较有经验的Linux爱好者。

这篇文章也其说是文章,不如说是一个技巧提示,但是我个人觉得它意义非常大,特别是对于大中型企业的用户来讲,它可能非常重要。

它主要描述了如果在Linux下使用samba来为使用Windows系统的机器作备份,并且描述了如何跨子网共享samba。

1、将Windows机器备分到一台Linux主机上

Adam Neat(adamneat@ipax.com.au),向我们提供了以下一段代码,它描述了如何使用smbclient软件包将windows机器备份到Linux主机上。Adam说它可以用来备份windows 3.x和NT机器到一台Linux的磁带机上。

另一段代码,是Dan Tager (dtager@marsala.com),提供的,Dan的脚本是通过rsh来备份Unix机器,尽管它可以修改成ssh以便使其更简单些。

在下面这个脚本中,字符串“agnea1”是作备份工作的Linux主机的一个用户名。

#!/bin/bash

clear

echo Initialising ...

checkdate=`date | awk '{print $1}'`

if [ -f "~agnea1/backup-dir/backup-data" ]; then

echo "ERROR: No config file for today!"

echo "FATAL!"

exit 1

fi

if [ -d "~agnea1/backup-dir/temp" ]; then

echo "ERROR: No tempoary directory found!"

echo

echo "Attempting to create"

cd ~agnea1

cd backup-dir

mkdir temp

echo "Directory Made - temp"

fi

if [ "$1" = "" ]; then

echo "ERROR: enter in a machine name (ie: cdwriter)"

exit 1

fi

if [ "$2" = "" ]; then

echo "ERROR: enter in a SMB (Lan Manager) Resource (ie: work)"

exit 1

fi

if [ "$3" = "" ]; then

echo "ERROR: enter in an IP address for $1 (ie:

130.xxx.xxx.52)" exit 1

fi

######################################################################

# Main Section

#

######################################################################

cd ~agnea1/backup-dir/temp

rm -r ~agnea1/backup-dir/temp/*

cd ~agnea1/backup-dir/

case "$checkdate"

in

Mon)

echo "Backuping for Monday"

cat backup-data | /usr/local/samba/bin/smbclient

$1$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Monday" ]; then

echo "Directory Monday Not found ...

making" mkdir

~agnea1/backup-dir/Monday

fi

echo "Archiving ..."

cd ~agnea1/backup-dir/temp

tar -cf monday.tar * echo "done ..."

rm ~agnea1/backup-dir/Monday/monday.tar

mv monday.tar ~agnea1/backup-dir/Monday

;;

Tue)

echo "Backuping for Tuesday"

cat backup-data | /usr/local/samba/bin/smbclient

$1$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Tuesday" ]; then

echo "Directory Tuesday Not found ...

making" mkdir

~agnea1/backup-dir/Tuesday

fi

echo "Archiving ..."

cd ~agnea1/backup-dir/temp

tar -cf tuesday.tar *

echo "done ..."

rm ~agnea1/backup-dir/Tuesday/tuesday.tar

mv tuesday.tar ~agnea1/backup-dir/Tuesday

;;

Wed)

echo "Backuping for Wednesday"

cat backup-data | /usr/local/samba/bin/smbclient

$1$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Wednesday" ]; then

echo "Directory Wednesday Not found

... making" mkdir

~agnea1/backup-dir/Wednesday

fi

echo "Archiving ..."

cd ~agnea1/backup-dir/temp

tar -cf wednesday.tar *

echo "done ..."

rm ~agnea1/backup-dir/Wednesday/wednesday.tar

mv wednesday.tar ~agnea1/backup-dir/Wednesday

;;

Thu)

echo "Backuping for Thrusday"

cat backup-data | /usr/local/samba/bin/smbclient

$1$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Thursday" ]; then

echo "Directory Thrusday Not found ...

making" mkdir

~agnea1/backup-dir/Thursday

fi

echo "Archiving ..."

cd ~agnea1/backup-dir/temp

tar -cf thursday.tar *

echo "done ..."

rm ~agnea1/backup-dir/Thursday/thursday.tar

mv thursday.tar ~agnea1/backup-dir/Thursday

;;

Fri)

echo "Backuping for Friday"

cat backup-data | /usr/local/samba/bin/smbclient

$1$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Friday" ]; then

echo "Directory Friday Not found ...

making" mkdir

~agnea1/backup-dir/Friday

fi

echo "Archiving ..."

cd ~agnea1/backup-dir/temp

tar -cf friday.tar *

echo "done ..."

rm ~agnea1/backup-dir/Friday/friday.tar

mv friday.tar ~agnea1/backup-dir/Friday

;;

*)

echo "FATAL ERROR: Unknown variable passed for day"

exit 1;;

esac

###########

______________________________________________________________________

这里是Dan的备份脚本:

______________________________________________________________________

#!/bin/bash

BACKDIR=3D/backup

WINCMD=3D/usr/bin/smbclient

function CopyWinHost(){

# tars and gzips "windows shares" to a local directory using samba's

# smbclient

# argument 1 is the remote host window's host name

# argument 2 is the share name to be backed up

echo $1,$2,$3

REMOTE=3D$1

SHARE=3D$2

DEST=3D$3

# create a tarred gzip file using samba to copy direct from a

# windows pc

# 12345 is a password. Needs some password even if not defined on

# remote system

$WINCMD $REMOTE$SHARE 12345 -Tc -|gzip > $DEST

echo `date`": Done backing up "$REMOTE" to "$DEST

echo

}

function CopyUnixHost(){

# tars and gzips a directory using rsh

# argument 1 is the name of the remote source host

# argument 2 is the full path to the remote source directory

# argument 3 is the name of the local tar-gzip file. day of week

# plus .tgz will be appended to argument 3

REMOTE=3D$1

SRC=3D$2

DEST=3D$3

if rsh $REMOTE tar -cf - $SRC |gzip > $DEST; then

echo `date`": Done backing up "$REMOTE":"$SRC" to "$DEST

else

echo `date`": Error backing up "$REMOTE":"$SRC" to "$DEST

fi

}

# $1: win=3Dbackup windows machine, unix=3Dbackup unix machine

case $1 in

win)

# $2=3D remote windows name, $3=3Dremote share name,

# $4=3Dlocal destination directory

CopyWinHost $2 $3 $4;;

unix)

# $2 =3D remote host, $3 =3D remote directory,

# $4 =3D destination name

CopyUnixHost $2 $3 $4;;

esac

______________________________________________________________________

以上两个文件都是针对于具体的机器而设计的,如果您准备对自己的机器也进行备份,那么请您安照您自己的机器的具体情况来修改这两个文件的一个,就可以使用了。

2、跨子网使用samba

许多大型企业有不同的子网,但是如何将另一个子网的内容被其它子网共享,是一个非常关键的问题,许多samba的用户在这里遇到许多麻烦,如果这点被解决了,那么可以使资源利用率大大提高。使企业的成本降低不少。

Andrew Tridgell声称SMB主机在通过有路由的网络共享时有一些问题。这是他的一些建议:

跨子网(例如,通过路由)资源浏览,你需要作以下事情。

1.所有希望被浏览的的计算机应该使用一个单个的WINS服务器(Samba或NT可以作到这点)

2.每个子网的master brower必须不是NT就是samba。(win9x不能正常地跨子网工作通讯)

3.你必须将所有子网的workgroup名字都设成一样的。这并不需要非常严格地遵守,但是这是保证成功的最简单的方式之一。如果你不能遵守这一条,那么你必须组织一种可以连接两个网络的方式,它可以由两种方式实现:

(1)每个browse master注意到在同一广播域中其它的borwse masters的workgroup的描述(2)每个非win9x的browse master要接触全部workgroup的DMB(常用的有:将主域控制器或一个samba服务器标记为domain master),并且周期性地交换browse 信息。

当然,其它用户指出,cisco的路由器可以通过一种方式被设置成解析SMB的交流,并允许浏览。它的建议是将SMB主机的路由接口设置成:

ip helper-address x.x.x.x

这里x.x.x.x是这台SMB服务器的IP地址。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有