关于rhel5安装nfs服务器,及shell script编写问题总结
2010-04-10 09:29
477 查看
1、rhel5实现nfs,并在at91sam9260上进行mount试验
step1:按照网上搜索的方法进行安装,然后检查确认是否已经启动了nfs服务(这点比较重要)
step2:修改/etc/exports文件,这个比较重要,mount上去之后,能否实现读写就靠它啦。
举例:本地ip为192.168.1.198,想通过nfs共享的文件夹为/home/wjb/test,且只读。
vim /etc/exports, 并输入如下内容:
/home/wjb/test 192.168.1.* (ro)
其中192.168.1.*表示所有192.168.1网段的ip都能mount这个盘,ro表示只读,这里还有很多属性选项,google一下就好
若想可以在客户端对nfs目录进行可读可写,需填写(rw,anonuid=xxx,sync(或async)),这个我试验了几遍才得出的结果。rw表示可写,anonuid=xxx表示将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx),这点很重要,因为在本地创建/home/wjb/test时,带入了创建用户的uid、gid,所以若以root创建,则nfs后,在客户端进行写操作时,会出现权限不足的警告,所以我用一般用户(如wjb)创建test目录,并把远程访问的用户都指定本地用户wjb(即xxx=wjb的uid),这就有足够权限进行写操作了。sync以及async表示的是以同步还是异步的方式写入,sync表现出来的速度要慢些,async因为是异步的关系,会快些。一定要带上这个关键字,否则,在远方mount时,生成的文件,在本地是不能看到的,也不能保存。
step3:在at91sam9260上验证
输入 mount -t nfs -o nolock 192.168.1.198:/home/wjb/test /mnt/nfs
mount到本地的/mnt/nfs文件夹。之所以要加-o nolock参数,是因为若不加,则不能mount成功,并出现不能取得文件锁的错误,错误代码-5,从网上得出的结论是,busybox内的mount命令会需要等待文件锁,通过-o选项去掉此操作,可以成功mount上。
2、shell srcipt 问题总结
想在linux下,写一个自动加入module,并根据其设备号,自动进行mknod的脚本,具体如下:
1 #!/bin/bash
2 echo "bona_second.ko initialization shell script is running..."
3
4 checkmodule=$(/sbin/lsmod | grep bona_second)
5
6 if [ "$checkmodule" != "" ];then
7 echo "bona_second is insmod"
8 else
9 echo "bona_second is not yet insmod~~~"
10 /sbin/insmod /home/wjb/test/bona_second_vmware.ko
11 if [ "$?" -eq 0 ];then
12 echo "bona_second insmod successfully"
13 else
14 echo "bona_second can't insmod, please check!!"
15 exit
16 fi
17 fi
18
19 if [ -c /dev/second ];then
20 echo "/dev/second is made"
21 exit
22 else
23 echo "/dev/second is not made~~"
24 name=$(cat /proc/devices | grep second)
25 num=${name% *d}
26 mknod /dev/second c ${num} 0
27 if [ "$?" -eq 0 ];then
28 echo "mknod /dev/second success"
29 else
30 echo "mknod /dev/second fail, please check!!"
31 fi
32 exit
33 fi
34
注意以下几点:
1、 4 checkmodule=$(/sbin/lsmod | grep bona_second),这样才能执行命令,并把命令的输出赋给变量,注意()与其他的{}不 一样,()应该是表示这是一个整体,{}表示这是一个变量,{}内为变量名。
2、 6 if [ "$checkmodule" != "" ];then... []内部头尾都要有空格,这点很重要,其次要用""把变量引起来,因为这是字符串,所以可以!=、=这种方式,若数值应该用-eq 等等
3、10 /sbin/insmod /home/wjb/test/bona_second_vmware.ko
11 if [ "$?" -eq 0 ];then
这段用来判断行10命令的执行结果。linux下,命令一般执行成功返回0,不成功返回非0,$?是自动变量,接收命令返回的结果
4、 19 if [ -c /dev/second ];then。。。判断/dev/second是不是一个字符设备文件
5、 25 num=${name% *d}。。。表示从name中删除“ *d”---意思为从左起 空格到d的第短匹配(还是最长匹配,忘了)
小结:为了写这个33行script,足足花了将近4个小时才搞掂,但对linux script的编写还是自我感觉有了很大的进步,哈哈,今后要继续努力~~~~
step1:按照网上搜索的方法进行安装,然后检查确认是否已经启动了nfs服务(这点比较重要)
step2:修改/etc/exports文件,这个比较重要,mount上去之后,能否实现读写就靠它啦。
举例:本地ip为192.168.1.198,想通过nfs共享的文件夹为/home/wjb/test,且只读。
vim /etc/exports, 并输入如下内容:
/home/wjb/test 192.168.1.* (ro)
其中192.168.1.*表示所有192.168.1网段的ip都能mount这个盘,ro表示只读,这里还有很多属性选项,google一下就好
若想可以在客户端对nfs目录进行可读可写,需填写(rw,anonuid=xxx,sync(或async)),这个我试验了几遍才得出的结果。rw表示可写,anonuid=xxx表示将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx),这点很重要,因为在本地创建/home/wjb/test时,带入了创建用户的uid、gid,所以若以root创建,则nfs后,在客户端进行写操作时,会出现权限不足的警告,所以我用一般用户(如wjb)创建test目录,并把远程访问的用户都指定本地用户wjb(即xxx=wjb的uid),这就有足够权限进行写操作了。sync以及async表示的是以同步还是异步的方式写入,sync表现出来的速度要慢些,async因为是异步的关系,会快些。一定要带上这个关键字,否则,在远方mount时,生成的文件,在本地是不能看到的,也不能保存。
step3:在at91sam9260上验证
输入 mount -t nfs -o nolock 192.168.1.198:/home/wjb/test /mnt/nfs
mount到本地的/mnt/nfs文件夹。之所以要加-o nolock参数,是因为若不加,则不能mount成功,并出现不能取得文件锁的错误,错误代码-5,从网上得出的结论是,busybox内的mount命令会需要等待文件锁,通过-o选项去掉此操作,可以成功mount上。
2、shell srcipt 问题总结
想在linux下,写一个自动加入module,并根据其设备号,自动进行mknod的脚本,具体如下:
1 #!/bin/bash
2 echo "bona_second.ko initialization shell script is running..."
3
4 checkmodule=$(/sbin/lsmod | grep bona_second)
5
6 if [ "$checkmodule" != "" ];then
7 echo "bona_second is insmod"
8 else
9 echo "bona_second is not yet insmod~~~"
10 /sbin/insmod /home/wjb/test/bona_second_vmware.ko
11 if [ "$?" -eq 0 ];then
12 echo "bona_second insmod successfully"
13 else
14 echo "bona_second can't insmod, please check!!"
15 exit
16 fi
17 fi
18
19 if [ -c /dev/second ];then
20 echo "/dev/second is made"
21 exit
22 else
23 echo "/dev/second is not made~~"
24 name=$(cat /proc/devices | grep second)
25 num=${name% *d}
26 mknod /dev/second c ${num} 0
27 if [ "$?" -eq 0 ];then
28 echo "mknod /dev/second success"
29 else
30 echo "mknod /dev/second fail, please check!!"
31 fi
32 exit
33 fi
34
注意以下几点:
1、 4 checkmodule=$(/sbin/lsmod | grep bona_second),这样才能执行命令,并把命令的输出赋给变量,注意()与其他的{}不 一样,()应该是表示这是一个整体,{}表示这是一个变量,{}内为变量名。
2、 6 if [ "$checkmodule" != "" ];then... []内部头尾都要有空格,这点很重要,其次要用""把变量引起来,因为这是字符串,所以可以!=、=这种方式,若数值应该用-eq 等等
3、10 /sbin/insmod /home/wjb/test/bona_second_vmware.ko
11 if [ "$?" -eq 0 ];then
这段用来判断行10命令的执行结果。linux下,命令一般执行成功返回0,不成功返回非0,$?是自动变量,接收命令返回的结果
4、 19 if [ -c /dev/second ];then。。。判断/dev/second是不是一个字符设备文件
5、 25 num=${name% *d}。。。表示从name中删除“ *d”---意思为从左起 空格到d的第短匹配(还是最长匹配,忘了)
小结:为了写这个33行script,足足花了将近4个小时才搞掂,但对linux script的编写还是自我感觉有了很大的进步,哈哈,今后要继续努力~~~~
相关文章推荐
- ubuntu12.04服务器版本hadoop 1.2.1集群安装遇到问题总结
- ubuntu安装nfs中的一些问题总结
- 关于服务器获取手机号码的问题总结
- 课程总结--NFS服务器安装
- spark菜鸟笔记-关于spark安装过程中遇到的问题总结
- windows下搭建Git服务器问题总结(安装失败的请进)
- 关于安装SCOM2012时Reporting Services(报表服务器)的Sql Server实例为空白的问题
- 关于Linux安装python画图遇到的一些问题总结
- 图像检索服务器编写问题记录——加入信号安装后的问题
- 关于安装Anaconda3各种各样的问题,吐血总结!!!(failed to create anacoda menu!!++)
- 关于用eclipse通过绑定外部安装的tomcat和myeclipse自带tomcat编写servlet遇到的问题
- 关于 用ports安装指定服务器问题
- [总结]关于数据库安装中的几个问题
- 使用netty4.x 编写TCP服务器关于握手问题
- [企业信息化]关于LCS2005的安装总结,但还有很多问题没有解决,希望能够对象我一样的新手有所帮助
- 关于NFS服务器的原理总结和mount挂载
- 关于NFS服务器设定 ——对鸟哥的总结
- 关于quartus软件安装的一些方法和路径问题总结
- python安装以及Anaconda安装中关于路径问题的总结
- 关于VMware6.5下Ubuntu9.04安装VMware tools的一些问题总结