在嵌入式开发中常用两种服务tftp与nfs(资源的共享与上传,下载)

来源:互联网 发布:织梦5.7自动内链失效 编辑:程序博客网 时间:2024/04/30 20:50

linux下的文件上传与下载,文件的共享服务:

TFTP主要用于文件的传输,在嵌入式的开发交叉的开发环境中被 广泛使用。

特点:它使用CS模式,客户端的上传与下载不需要账户。缺点是必须事先告诉用户有那些可以下载的资源。常用的tftpd-hpa(服


务端软件)和tftp-hpa(客户端软件)。

安装及设置步骤:

1,apt-get install thtpd-hpa;

2,apt-get install thtp-hpa;

3,sudo vi /etc/default/tftpd-hpa 修改“/var/lib/tftpboot” 为“/tftpboot”  修改 "--secure" 为"--secure -c"允许上传新文件 

4. 若/tftpboot不存在,创建该目录  

sudo mkdir /tftpboot  sudo chmod 777 /tftpboot 

sudo chown lei.lei tftpboot

5. 重启tftpd-hpa 服务   

$sudo service tftpd-hparestart  

 若服务重启成功,能查看到相应的进程

 至此tftp服务已经安装完成了,下面可以对其进行一下测试。
(假设在当前目录下有一个测 试文件test.txt) 
  tftp  127.0.0.1 

(假设在当前目录下有一个测 试文件test.txt) 

  tftp  127.0.0.1 (IP地址)
  tftp>put test.txt Sent1018 bytesin 0.0seconds 
  tftp>get test.txt received1018 bytesin 0.1seconds 
  tftp>quit 退出 

 

  tftp>put test.txt Sent1018 bytesin 0.0seconds 

  tftp>get test.txt received1018 bytesin 0.1seconds 

  tftp>quit 退出 


 在ubuntu 下安装、配置nfs服务的步骤如下: nfs主要实现linux系统之间的资源共享,它是将某台linux主机的若干目录共享出来,交由其他的linux主机直接使用。

特点:可以实现远程的操作。缺点:可靠性不高,必须有足够的信赖。

1、安装nfs Ubuntu sudo apt-getinstall nfs-kernel-server 
2、配置/etc/exports nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。 例如,我们要将根目录下的
 

2、配置/etc/exports nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。 例如,我们要将根目录下的

 rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添 加如下一行:/rootfs   *(rw,sync,no_root_squash) 

中:
/rootfs是要共享的目录,
*代表允许所有的网络段访问,
rw 是可读写权限,
sync 是资 料同步写入内存和硬盘,
 

/rootfs是要共享的目录,

*代表允许所有的网络段访问,

rw 是可读写权限,

sync 是资 料同步写入内存和硬盘,

 no_root_squash 是nfs客户端分享目录使用者的权限,如果客户端 使用的是root 用户,那么对于该共享目录而言,该客户端就

具有root权限。 

其它nfs 常用的参数有: 

ro 只读访问

rw 读写访问

sync 所有数据在请求时写入共享 

async nfs在写入数据前 可以响应请求 secure nfs通过1024 以下的安全TCP/IP端口发送 insecurenfs通过1024 以上的端口发送 wdelay 如果多个用户要写入nfs目录,则归组写入(默认) no_wdelay 如果多个用户要写入nfs 目录,则立即写入,当使用async 时,无需此设置。 hide 在nfs 共享目录中不共享其子目录 no_hide 共享nfs目录的子目录 subtree_check 如果共享/usr/bin 之类的子目录时,强制nfs 检查父目录的权限(默认) no_subtree_check 和上面相对,不检查父目录权限 all_squash 共享文件的UID和GID映射

匿名用户anonymous,适合公用目录。 no_all_squash 保留共享文件的UID和GID(默认) root_squash root 用户的所有请求映

射成如anonymous 用户一样的权限(默认) no_root_squasroot 用户具有根目录的完全管理访问权限 anonuid=xxx 指定nfs 服

务器/etc/passwd 文件中匿名用户的UID anongid=xxx 指定nfs服务器/etc/passwd 文件中匿名用户的GID 

3、重启服务 

$sudo /etc/init.d/portmap  restart 
$sudo /etc/init.d/nfs-kernel-server restart 
4、测试nfs 此时可以运行以下命令来显示一

$sudo /etc/init.d/nfs-kernel-server restart 

4、测试nfs 此时可以运行以下命令来显示一下共享出来的目录: 
$showmount-e 

$showmount-e 

或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs 挂载到/mnt 下:

$sudo mount-t nfs /source/rootfs /home/lei/lei78 
可以运行df 命令查看是否挂载成功。
查看后可以使用以下命令卸载: $sudo umount/mnt 

可以运行df 命令查看是否挂载成功。

查看后可以使用以下命令卸载: $sudo umount/mnt 

**************************************8********************************

别注意点:在挂载时以最后一个挂载的为准,因为一个挂载点对应一个文件系统。

sudo mount -t nfs /source/rootfs IP/directory IP是别人的IP地址,directory是别人的目录,

这样别人就可以访问我主机下/source/rootfs里面的东西了。

还有一点就是在我们在重启机以后,需要重新挂载,这时我们可以去修改/etc/fstab来实现自动挂载

 ************************************8*********************************

原创粉丝点击