linux做文件共享http下载,linux上的文件共享服务详解

linux上的文件共享服务

简单介绍:在linux主机之间可以用NFS服务实现文件共享,而且实现起来也十分方便。在windows主机之间使用windows文件共享同样可以实现包括网络文件在内部的系统资源的共享。如果想在linux和windows主机之间进行文件的共享,使用samba服务器是比较理想的解决方案。下面来介绍linux中的两种共享,一、samba服务器,一直以来windows主机之间都使用CIFS可以从一台windows主机直接访问网络中其他主机中的共享文件夹,CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其它主机并访问其中的共享文件,而CIFS网络协议是微软私有协议,所以无法直接与linux系统进行通信,直到samba项目的出现。samba是著名 的开源软件项目,在linux系统中实现了smb/cifs网络协议 ,可以将 linux系统中的目录和文件提供给windows主机进行访问,很好的实现了linux和windows系统之间的文件互通。二、NFS即网络文件系统,多用于linux/unix操作系统实现文件共享的。

实验目标:

:安装配置SAMBA服务器

:安装配置NFS服务器

实验操作过程及配置说明:

.1 任务1:配置SAMBA服务器使用SAMBA客户端

5.1.1步骤1: samba默认安装,不用手动安装(下面是查看结果)

20090429173224281.jpg

5.1.2步骤2:修改主配置文件,更改工作组。

[root@sjd2 ~]#vi /etc/samba/smb.conf

workgroup = 工作组名(设置成与windows真机一致)

20090429173224282.jpg

20090429173225283.jpg

5.1.3步骤3:启动SAMBA服务,为防止服务之前已经启动,尽量用restart。

[root@sjd2 ~]#service smb restart

20090429173225284.jpg

5.1.4步骤4:添加系统用户,并生成相应的samba用户。(注:可以用root用户,密码可以与系统的root账户密码不同。)

[root@sjd2 ~]#smbpasswd –a root

20090429173225285.jpg

5.1.5步骤5:打开真机的网上邻居,点击左栏的查看工作组计算机,查看是否有SAMBA服务器。如果没有查看工作组计算机,请点击工具菜单->文件夹选项,勾选在文件夹中显示常见任务。

20090429173226286.jpg

5.1.6步骤6:在网上邻居中打开SAMBA服务器,输入SAMBA账户名及密码登录。

用共享用户root登录要用共享的密码

20090429173226287.jpg

默认登录到的是在root账户的宿主目录

20090429173226288.jpg

5.1.7步骤7:在虚机中运行smbstatus命令并记录结果。

20090429173226289.jpg

5.1.8步骤8:在真机中建立共享文件夹,并确认管理员已经设置密码。

5.1.9步骤9:在虚机中登录真机的共享文件夹

查看真机共享列表:(此命令是显示指定服务器上的共享资源,不指定账户时会使用匿名登录,密码为空)

[root@sjd2 ~]#smbclient 真机IP –L

20090429173227290.jpg

登录共享文件夹:-u命令选项指定使用的用户登录名,要输入密码,要指定共享名称

[root@sjd2 ~]#smbclient //真机IP/共享名 –U administrator

登录后可以使用get命令下载和put上传

20090429173227291.jpg

5.1.10步骤10:在虚机中挂载真机的共享文件夹

[root@sjd2 ~]#smbmount //真机IP/共享名 /mnt –o username=administrator

20090429173227292.jpg

任务2:安装并配置NFS管理NFS服务器。

1.通常情况下NFS软件包是系统默认安装的,在配置NFS服务器前先查看下软件包是否安装.如果没有安装,nfs-utils portmap这两个软件包在第二张光盘里/RedHat/PMS

#rpm –q nfs-utils portmap

20090429173228293.jpg

2.portmap软件包中提供了运行portmap服务所需要的文件。portmap服务为NFS等服务器程序提供RPC(远程过程调用)服务的支持,因此应确保portmap软件包和nfs-utils软件包一同安装。

nfs-utils软件包中提供了NFS服务器的启动脚本和管理维护工具。

3.NFS服务器的配置,NFS服务器的配置文件保存在/etc/目录中,文件名称是exports,该文件用于配置NFS服务器提供的目录共享(默认文件中没有内容,这样也是出于安全的考虑)我以经做过共享了所以里过有一条记录

20090429173228294.jpg

/home 是需要进行输出的NFS共享的目录名称

192.168.1.0是这个网段的主机才可以访问后面是共享权限,可以用*来代替IP就是对所有主机共享

4.exports文件配置实例

20090429173228295.jpg

配置的是对所有主机共享sjd文件夹

20090429173228296.jpg

NFS服务器的启动与停止

查询service portmap status 启动service portmap start 停止service portmap stop

20090429173228297.jpg

启动nfs服务serivce nfs start (由于nfs服务需要portmap服务提供支持,因此portmap要先启动)

20090429173229298.jpg

5.showmount命令显示NFS服务器的信息

showmount 192.168.0.1 (NFS服务器的IP)

20090429173229299.jpg

查看服务器上输出的共享

20090429173229300.jpg

showmount –d 【NFS服务器主机地址】 用于显示NFS服务器中已经被NFS客户端挂载用的共享目录

20090429173229301.jpg

showmount –a选项用于显示NFS服务器中已经被挂载的共享目录一列表和挂载共享目录的NFS客户机的地址

20090429173229302.jpg

6.exportfs命令

当系统管理员对/etc/exports文件进行设置修改后并不会自动在NFS服务器中生效。NFS服务器的软件包中提供了exportfs管理工具,可以对exports文件设置的内容进行管理。

重新输出共享目录exportfs –rv

20090429173230303.jpg

停止输出所有目录exportfs –auv

20090429173230304.jpg

输出(启用)所有目录exportfs av

20090429173230305.jpg

7.NFS客户端配置

在linux中配置使用NFS客户端

1. 挂载NFS服务器中的共享目录 mount –t nfs 192.168.0.1:/sjd /mnt(先查看再挂载的)20090429173230306.jpg

已经挂载上了,可以看到里边的文件了20090429173231307.jpg

2. 系统启动时自动挂载

将nfs共享信息写入/etc/fstab文件,以实对nfs共享目录的自动挂载

在fstab文件中添加以下一行

192.168.0.1:/sjd /mnt nfs defaults 0 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux共享内存是一种高效的进程间通信方式,它可以使多个进程共享同一块内存区域,从而避免了进程间的数据拷贝和通信的开销。下面是Linux共享内存的原理详解: 1.创建共享内存: 在Linux系统中,使用shmget()函数创建共享内存,该函数的原型如下: ``` int shmget(key_t key, size_t size, int shmflg); ``` 其中,key是共享内存的标识符,size是共享内存的大小,shmflg是共享内存的访问权限。shmget()函数返回一个共享内存的标识符,该标识符可以用于后续的共享内存操作。 2.映射共享内存: 使用shmat()函数将共享内存映射到进程的虚拟地址空间中,该函数的原型如下: ``` void *shmat(int shmid, const void *shmaddr, int shmflg); ``` 其中,shmid是共享内存的标识符,shmaddr是共享内存的映射地址,shmflg是共享内存的访问权限。shmat()函数返回一个指向共享内存映射区域的指针,该指针可以用于后续的共享内存操作。 3.使用共享内存: 通过共享内存映射的指针,进程可以直接访问共享内存中的数据,从而实现进程间的数据共享。需要注意的是,由于多个进程共享同一块内存区域,因此需要使用信号量等同步机制来避免数据竞争等问题。 4.撤销共享内存: 使用shmdt()函数将共享内存从进程的虚拟地址空间中撤销,该函数的原型如下: ``` int shmdt(const void *shmaddr); ``` 其中,shmaddr是共享内存的映射地址。shmdt()函数返回0表示成功,-1表示失败。 5.删除共享内存: 使用shmctl()函数删除共享内存,该函数的原型如下: ``` int shmctl(int shmid, int cmd, struct shmid_ds *buf); ``` 其中,shmid是共享内存的标识符,cmd是删除共享内存的命令,buf是共享内存的状态信息。shmctl()函数返回0表示成功,-1表示失败。 总结: Linux共享内存通过创建一块共享内存区域,使多个进程可以直接访问同一块内存,从而实现进程间的高效通信。需要注意的是,由于多个进程共享同一块内存区域,因此需要使用信号量等同步机制来避免数据竞争等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值