分类:
2010-04-14 14:20:04
Unix下命令技巧集锦 之 目录共享篇
方正 李守亮
2003-2-24 初稿
简述
在日常工作中,经常遇到相同或不同Unix平台之间的NFS目录共享、以及Windows与Unix之间的目录共享。本节给出的是不同平台之间进行文件共享的简单示例,供同事们在工作中参考。
注:本文档范例的配置参数缺省为目录root可读写rw权限,仅供参考,参数调整请自行研究。
目录
1、如何实现Sun Solaris平台之间的NFS文件共享?
2、如何实现AIX到Sun Solaris平台之间的NFS文件共享?
3、如何实现Sun Solaris到AIX平台之间的NFS文件共享?
4、如何实现Sun Solaris和Linux平台之间的NFS文件共享?
5、如何实现AIX和AIX平台之间的NFS文件共享?
6、如何实现Linux和Linux之间的NFS文件共享?
7、如何实现Linux访问windows文件共享?
8、如何实现Solaris访问windows文件共享?
9、如何实现windows访问UNIX的文件共享?
10、NFS的相关命令
11、NFS中常见的错误
内容
=========================================================================
1、如何实现Sun Solaris平台之间NFS文件共享?
方法一:
SUN A:(IP: 162.105.183.13)
#su -
#share -F nfs -o rw=162.105.183.12,root=162.105.183.12 /myshare
#share
SUN B:(IP: 162.105.183.12)
#su -
#mkdir /mymount
#mount -F nfs -o rw 162.105.183.13:/myshare /mymount
#mount
方法二:(写入启动文件)
SUN A:(IP: 162.105.183.13)
#su -
#vi /etc/hosts
162.105.183.12 sllisun
格式:IP ServerName
#cp /etc/dfs/dfstab /etc/dfs/dfstab.sav
#vi /etc/dfs/dfstab
增加:
share -F nfs -o rw=sllusun,root=sllisun /myshare
share -F nfs -o ro /cdrom/disk1
#/etc/init.d/nfs.server start #启动nfs
#share
#/etc/init.d/nfs.server stop #对应地停止nfs
SUN B:(IP: 162.105.183.12)
#su -
#cp /etc/vfstab /etc/vfstab.sav
#vi /etc/vfstab
增加:
162.105.183.13:/myshare - /mymount nfs - yes rw
162.105.183.13:/cdrom/disk1 - /mnt/disk nfs - no ro
#mountall
★问题:
# mount -F nfs -o rw 172.16.5.10:/cdrom /mymount
nfs mount: 172.16.5.10: : RPC: 程序未注册
nfs mount: 重试:/mymount
★解决方法:需要在share机器上,
#vi /etc/dfs/dfstab
增加:
share -F nfs -o rw=sllisun,root=sllisun /myshare
share -F nfs -o ro /cdrom/disk1
#sllisun为挂接服务器host,或写为IP
#/etc/init.d/nfs.server start #启动nfs
#share
#/etc/init.d/nfs.server stop #对应地停止nfs
=========================================================================
2、如何实现AIX到Sun Solaris平台之间NFS文件共享?
语法:
AIX共享端:
exportfs [-aiuv] [-f file] [-o options] [directory]
SUN加载端:
mount -F nfs [-o options] IP:/share mount_point
umount [-f] [-V] [ -o options ] special|mount_point
示例:
AIX:共享/aixshare目录
#exportfs -o rw /aixshare
#exportfs -a #查看共享状态
SUN:加载AIX共享的/aixshare到本机的mount点/sunmount
#mount -F nfs 162.105.183.35:/aixshare /sunmount
#mount #查看mount状态
AIX:删除共享/aixshare
#exportfs -u /aixshare
#exportfs -a #查看共享状态
SUN:删除NFS mount
#umount /sunmount
#mount #查看mount状态
另外,在AIX端还可以修改/etc/exports文件,使用exportfs -a进行共享,示例
#vi /etc/exports
/aaa -root=162.105.183.75,public
/bbb -access=162.05.183.75,public
/slli -access=162.105.183.98,secure
/mytest1 -root=162.105.183.12,access=162.105.183.13,secure,public
#exportfs -a
其次,AIX还可以通过/usr/sbin/mknfsexp命令实现共享,可以通过smit可视化界面操作。
注意:NFS系统的读写权限除和选项有关,还和共享目录的权限、UID等有关;如果共享的光盘不能取出,请检查是否在共享和远程mount。
=========================================================================
3、如何实现Sun Solaris到AIX平台之间NFS文件共享?
语法:
SUN共享端:
share [-F FSType] [-o specific_options] [-d description ] [ pathname ]
unshare [-F FSType] [-o specific_options] [pathname|resourcename ]
AIX加载端:
mount [-fipr] [-n node] [-o options] [-t type] [-{v|V} vfs] [-a | all | [[node:]device] [dir]]
umount [-sf] {-a|-n Node|-t Type|all|allr|Device|File|Directory|Filesystem}
示例:
SUN:共享/sunshare目录,共享/cdrom/disk1
#share -F nfs -o rw=162.105.183.35,root=162.105.183.35 /sunshare
#share -F nfs -o ro /cdrom/Disk1
#share #查看share状态
AIX:加载162.105.183.12的/sunshare到mount点/aixmount,加载/cdrom到oradisk
#mkdir /aixmount
#mkdir /oradisk
#mount -f 162.105.183.12:/sunshare /aixmount
#mount -f 162.105.183.12:/cdrom/Disk1 /oradisk
#mount #查看mount状态
SUN:删除共享/sunshare
#unshare /sunshare
#share #查看共享状态
AIX:删除NFS mount
#umount /aixmount
#mount #查看mount状态
========================================================================
4、如何实现Sun Solaris到Linux之间NFS文件共享?
方法一:
1.SUN端(IP: 162.105.183.12)
#su -
#share -F nfs -o ro -d "share dir description" /sunshare
#share #看是否share
#unshare /sunshare #取消共享
2.Linux端
#su -
#mkdir /mnt/linuxmount
#mount 162.105.183.12:/sunshare /mnt/linuxmount -t nfs
#umount /mnt/linuxmount #卸载mount点
方法二:
1.SUN端(IP: 162.105.183.12)
#su -
#cd /etc/dfs
#cp dfstab dfstab.bak
#vi dfstab
增加一行
share -F nfs -o ro -d "your description" /sunshare
存盘退出vi
#/etc/init.d/nfs.server start
#/etc/init.d/nfs.server start #停止共享
2.Linux端
#su -
#mount 162.105.183.12:/sunshare /mnt/linuxmount -t nfs
#umount /mnt/linuxmount #卸载mount
★问题:
Solaris10下挂载NFS空间报错:
[root@node1 /]# mount -F nfs 192.168.0.1:/opt /mnt/nfs
nfs mount: mount: /mnt/nfs: Not owner
原因是Solaris尝试用nfs.Version4来建立连接。
★解决方法如下:
LINUX:/etc/exports
/mnt/b2b/b2b-data/resinfo2 10.10.11.30(rw,sync,no_root_squash)
Solaris:
#mount -F nfs -o vers=3 10.10.2.3:/mnt/b2b/b2b-data/resinfo2 /data/b2b-data/resinfo2
★示例:
[root@node1 /]# mount -F nfs -o vers=3 192.168.0.1:/opt /mnt/nfs
[root@node1 /]# df -h /mnt/nfs
Filesystem size used avail capacity Mounted on
192.168.0.1:/opt 123G 29G 88G 25% /mnt/nfs
=========================================================================
5、 何实现AIX和AIX之间的NFS文件共享?
示例:
AIX A:IP:162.105.183.35,共享/myshare目录
#exportfs -o rw /myshare
#exportfs -a #查看共享状态
AIX B:加载/myshare目录到/mymount
#mount -f 162.105.183.35:/myshare /mymount
=========================================================================
6、如何实现Linux和Linux之间NFS文件共享?
Linux A:(IP: 162.105.183.55)
#su -
#vi /etc/exports
增加共享行,格式:
/path/to/share host1(permission) host2(permission) host3(permission)
存盘退出
示例:
/bea/output 172.16.34.103(rw)
/mnt/b2b/b2b-data/resinfo2 10.10.11.30(rw,sync,no_root_squash)
#exportfs -a
/path ip(rw,root,sync,no_root_squash)
service nfs start
Linux B:
#su -
#mkdir /mnt/mymount
格式:mount serverip:/server/path/shared /local/mount/point -t nfs -o rw
示例:
#mount 162.105.183.55:/myshare /mnt/mymount -t nfs
===================================
★问题:在新华网遇到
A:
/etc/exports
/bea/output 172.16.34.103(rw)
#exportfs -a
can't contact portmapper: RPC: Remote system error - Connection refused
★解决:
出现这个错误信息是由于SEVER端的PORTMAP没有启动。
service portmap start
service pcmcia start
mount: RPC: Program not registered
/etc/rc.d/init.d/nfs restart
B:
mount -t nfs 172.16.34.104:/bea/output /bea/104nfs
/etc/fstab
192.168.1.100:/tmp /mnt/nfs nfs defaults 0 0
=======================================================================
7、如何实现Linux访问windows文件共享?
方法一,通过smbmonunt命令
1.turbolinux:
格式:smbmonunt //server/dir /mount/point -o username=xxx,password=xxx
示例:(用户user口令pwd)
#smbmount //162.105.183.125/share /mnt/test -o username=user,password=pwd
#smbmount --help #得到更多帮助
2.redhat:
格式:
smbmount ""
示例:(用户user口令pwd)
#su -
#smbmount "" pwd -c 'mount /mnt/test -u user -g 123'
#smbmount --help #得到更多帮助
方法二,通过mount命令
mount -t smbfs -o username=aaa,password=Founder123456 //172.18.82.46/ap_web /opt/data
8、如何实现Solaris 10访问windows文件共享?
Solaris中没有smbmount命令,但可以通过第三方软件sharitylight来实现该功能。
#wget
#gunzip sharitylight-1.3-sol10-x86-local.gz
#pkgadd -d sharitylight-1.3-sol10-x86-local
./shlight //server1/share /mypath
1、增加/etc/hosts,把ip对应机器名
10.10.1.3 server1
2、命令
加载挂接点:
#./shlight //server1/share /mypath -U admin -P passwd
卸载挂接点:
#./unshlight /挂载点
=======================================================================
9、如何实现windows访问UNIX的文件共享?
从Unix到NT的文件共享,可以通过Samba或PC link等工具来实现。Samba的部署、配置和使用参见单独给出的文档。
10、10、NFS的相关命令
#man share_nfs
相关命令:
mount/umount,mountall/umountall,dfshares/dfmounts,share/unshare,share_nfs,exportfs,showmount,nfsstat……
附加:★NFS常见故障排除
-------------------
1、The rpcbind failure error
故障现象:
nfs mount: server1:: RPC: Rpcbind failure
RPC: Timed Out
nfs mount: retrying: /mntpoint
原因:
第一,可能因为客户机的hosts文件中存在错误的ip地址、主机名或节点名组合;
第二,服务器因为过载而暂时停止服务。
2、The server not responding error
现象:
NFS server server2 not responding, still trying
原因:
第一,网络不通,用ping命令检测一下。
第二,服务器关机。
3、The NFS client fails a reboot error
现象:
启动客户机后停住了,不断显示如下提示信息:
Setting default interface for multicast: add net 224.0.0.0: gateway:
client_node_name.
原因:
在etc/vfstab的mount选项中使用了fg而又无法成功mount服务器上的资源,改成bg或将该行注释掉,直到服务器可用为止。
4、The service not responding error
现象:
nfs mount: dbserver: NFS: Service not responding
nfs mount: retrying: /mntpoint
原因:
第一,当前级别不是级别3,用who –r查看,用init切换。
第二,NFS Server守护进程不存在,用ps –ef | grep nfs检查,用/etc/init.d/nfs.server start启动。
5、The program not registered error
现象:
nfs mount: dbserver: RPC: Program not registered
nfs mount: retrying: /mntpoint
原因:
第一,当前级别不是级别3。
第二,mountd守护进程没有启动,用/etc/init.d/nfs.server脚本启动NFS守护进程。
第三,看/etc/dfs/dfstab中的条目是否正常。
6、The stale file handle error
现象:
stale NFS file handle
原因:
服务器上的共享资源移动位置了,在客户端使用umount和mount重新挂接就可以了。
7、The unknown host error
现象:
nfs mount: sserver1:: RPC: Unknown host
原因:
hosts文件中的内容不正确。
8、The mount point error
现象:
mount: mount-point /DS9 does not exist.
原因:
该挂接点在客户机上不存在,注意检查命令行或/etc/vfstab文件中相关条目的拼写。
9、The no such file error
现象:
No such file or directory.
原因:
该挂接点在服务器上不存在,注意检查命令行或/etc/vfstab文件中相关条目的拼写。
10、No route to host
错误现象:
[root@msa30 sysconfig]# mount 10.10.11.211:/opt/b2b-data/xmldb /b2b-web1/b2b-data/xmldb -t nfs -o rw
mount: mount to NFS server '10.10.11.211' failed: System Error: No route to host.
原因:
防火墙被打开,关闭防火墙。
11、Not owner
现象:
[root@msa30:/founder/shell]# mount -F nfs -o rw 10.10.2.3:/mnt/b2b/b2b-data/resinfo2 /data/b2b-data/resinfo2
nfs mount: mount: /data/b2b-data/resinfo2: Not owner
原因:
这是Solaris 10版本挂载较低版本nfs时报的错误。
解决:
需要用-o vers=3参数
示例:
[root@msa30:/founder/shell]# mount -F nfs -o vers=3 10.10.2.3:/mnt/b2b/b2b-data/resinfo2 /data/b2b-data/resinfo2
12、RPC: Program not registered & retrying
现象:
nfs mount: 10.10.2.3: : RPC: Program not registered
nfs mount: retrying: /data/b2b-data/resinfo2
原因:
没有启动NFS共享端服务。
解决:需要重新启动share端的NFS服务,
Linux:
mount: RPC: Program not registered
#service nfs restart
Solaris:
mount: RPC: Program not registered
#/etc/rc.d/init.d/nfs restart
13、can't contact portmapper: RPC: Remote system error - Connection refused
现象:
#exportfs -a
can't contact portmapper: RPC: Remote system error - Connection refused
原因:
出现这个错误信息是由于SEVER端的PORTMAP没有启动。
解决:
#service portmap start
#service pcmcia start
李守亮
2003-2-24 初稿
不断补充、整理……
2010-4-14 最后稿