背景:
相较于windows、unix等OS,Linux因为其开源、安全、稳定、性能优越等优点,已越来越受到互联网的青睐。而我们在学习和使用Linux也就会考虑到Linux机器和我们日常用的windows之间的通信,文件共享等问题。
问题定位:
1、如何实现Linux OS共享文件?
2、如何在日常使用的windows上get到Linux服务器上的文件?
3、如何做到Linux服务器之间的文件共享?
解决办法:
一、samba共享
实现Linux的文件共享,也就是说在linux机器上共享文件,在windows机器上可以对Linux共享的文件进行下载。
实验前提:
1、关闭防火墙:service iptables stop
2、关闭selinux:setenforce 0 #临时有效,修改/etc/sysconfig/selinux
3、Windows IP:172.16.12.24
4、Linux IP:172.16.11.99
1、安装samba服务
[root@localhost ~]# rpm -qa | grep samba
[root@localhost ~]# yum install samba
2、创建smb登录用户名和密码
[root@localhost ~]# useradd smbuser #新创建用户
[root@localhost ~]# smbpasswd -a smbuser
回车后会提示输入密码 #设置远程主机(windows)登录时需要的密码
#删除smb用户:smbpasswd -x smbuser
3、创建共享目录
[root@localhost ~]# mkdir -m 777 /home/smbuser/share
#共享目录可以随意设置,不过要与配置文件相匹配
#共享的文件放于此处
#设置权限,共享目录的权限
4、修改samba服务的配置文件/etc/samba/smb.conf
[root@localhost ~]# vim /etc/samba/smb.conf
workgroup = WORKGROUP #windows工作组模式
#hosts allow = 172.16.12.24 #允许访问的windows的IP地址
视情况而定是否指定访问主机,无论是有没指定,前提条件是机器彼此间互通,也就是说能够ping通。
注意:默认配置文件里,是会共享[homes],注释掉,避免重复
在文件的结尾添加:
[share] //(共享名,就是windows访问时会显示的名称)
comment = Public Stuff //(注释)
path = /home/smbuser/share //(创建的共享目录的共享名)
public = yes //(公开)
writable = yes //(可写)
printable = no
write list = +staff
其他的参数根据情况设置,比如会出现乱码,还要指定编码格式。
设置权限,这很重要,读写权限:读,就只能下载;写,可上传可下载
5、重启smb服务
[root@localhost ~]# service smb restart
6、windows下连接,启动运行,输入\\172.16.11.99,输入smb帐号密码
至此,即实现了Linux共享文件……
二、NFS共享
通过NFS来访问主机端共享文件。
NFS(Network File System):网络文件系统。
NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。(Linux、Unix之间的共享)
1、Server端
1、安装nfs
[root@server ~]# rpm -qa|grep "nfs"
……
如果没有安装
[root@server ~]# yum install nfs-utils
安装:centos 6.x之后的系统一个命令yum install nfs-utils 全部搞定
2、开启rpcbind服务
(取代之前的portmap---需要单独安装的服务)
[root@server ~]# service rpcbind status
rpcbind (pid 1885) is running...
3、配置NFS的配置文件etc/exports
[root@server ~]# vim /etc/exports
/home/share 172.16.0.0/16(rw,sync)
解析:
1、/home/share为共享目录(共享文件存放的目录,可以是随意的)
2、rw:具有读写权限
3、sync:文件同步写入到内存和硬盘
[root@server ~]# exportfs #生效配置文件
4、重启NFS服务
[root@server ~]# service nfs restart
[root@server ~]# service rpcbind restart
5、查看NFS的共享状态
[root@server home]# showmount -e
Export list for server.chinaitsoft.com:
/home/share 172.16.0.0/16
2、Client端
在nfs客户端需要安装nfs-utils软件包:yum install nfs-utils
1、查看可得到的NFS共享状态
#showmount -e NFS服务器IP
[root@client ~]# showmount -e 172.16.11.99
Export list for 172.16.11.99:
/home/share 172.16.0.0/16
2、挂载NFS服务器中的共享目录
#mount NFS服务器IP:共享目录 本地挂载点目录
[root@client ~]# mount 172.16.11.99:/home/share /mnt
[root@client ~]# mount | grep "nfs"
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
172.16.11.99:/home/share on /mnt type nfs (rw,vers=4,addr=172.16.11.99,clientaddr=172.16.3.16)
……挂载成功
3、如此,client和server建立文件共享机制
[root@server share]# pwd
/home/share
[root@server share]# touch file ; mkdir dir
[root@server share]# ll
total
drwxr-xr-x root root Mar : dir
-rw-r--r-- root root Mar : file
[root@client mnt]# ls
dir file
[root@client mnt]# cd dir
[root@client dir]#
[root@client mnt]# mkdir dir_client
mkdir: cannot create directory `dir_client': Permission denied //权限不够,原因共享目录本来就没有给其他用户打开写的权限 [root@server share]# ll -d
drwxr-xr-x root root Mar : .
[root@server share]# chmod -R /home/share
[root@server share]# ll -d
drwxrwxrwx root root Mar : .
注意:
1、虽然通过权限设置可以让普通用户访问,但是挂载的时候默认情况下只有root可以去挂载,普通用户可以执行sudo。
2、NFS server 关机的时候一点要确保NFS服务关闭,没有客户端处于连接状态!通过showmount -a 可以查看,如果有的话用kill killall pkill 来结束(-9 强制结束)
4、相关命令
1、exportfs:启动了NFS之后又修改了/etc/exports,可以用exportfs 命令来使改动立刻生效
命令格式如下:
shell> exportfs [-aruv]
-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。 例:
shell> exportfs -au #卸载所有共享目录
shell> exportfs -rv #重新共享所有目录并输出详细信息
2、nfsstat 查看NFS的运行状态
3、rpcinfo 查看rpc执行信息
4、showmount
-a #显示已经于客户端连接上的目录信息
-e IP或者hostname #显示此IP地址分享出来的目录
5、netstat
Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
#使用netstat命令,查看出nfs服务开启的端口,其中nfs 开启的是2049,portmap 开启的是111,其余则是rpc开启的。
Linux OS共享文件的更多相关文章
-
基于samba实现win7与linux之间共享文件_阳仔_新浪博客
基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.
-
Automatic logon configuration on Linux OS
Automatic logon configuration on Linux OS 1. Regarding to DSA: a) ssh-keygen -t dsa b) cat ~/.ssh/i ...
-
使用vmtools来设置windows和linux的共享文件夹
目的:通过vmtools来实现windows和linux的共享文件夹 步骤: 1.前提条件是vmtools已经安装 2.在windows任意磁盘新建一个共享文件夹 3.进入虚拟机->设置-> ...
-
node js linux / OS 安装
rm -rf 删除文件夹名字rm -rf 软连接名称 1.安装taryum install -y tar 3. 下载node https://nodejs.org/en/download/ 4. 拷贝 ...
-
wchar_t string on Linux, OS X and Windows
Making wchar_t work on Linux, OS X and Windows for CMarkup release 10.1 I learned a couple of humble ...
-
LINUX OS 正常关机失败
描述:LINUX OS运行命令shutdown now显示:Telling INIT to go to single user mode.... 解决方法:运行命令exit重新登录,再运行 hal ...
-
ViewTool Hollong BLE Sniffer Support Linux OS Introduction
ViewTool Hollong BLE Sniffer Support Linux OS Introduction 1. Download Software:http://www.viewtool. ...
-
linux 挂载共享文件夹
1.背景 通常会有这样的场景,开发人员在Windows编写代码,然后放在linux环境编译,我们通过mount命令就可以实现将代码直接挂到linux环境上去,使Windows上的共享文件夹就像linu ...
-
[Linux] - Windows与Linux网络共享文件夹挂载方法
Windows与Linux网络SMB方式文件夹共享挂载 本示例系统: Windows 2003+ Linux-Centos/Ubuntu 本示例全为命令行操作,如何使用Windows.Linux命令行 ...
随机推荐
-
从零自学Hadoop(21):HBase数据模型相关操作下
阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
-
Hadoop map和reduce数量估算
Hadoop在运行一个mapreduce job之前,需要估算这个job的maptask数和reducetask数.首先分析一下job的maptask数,当一个job提交时,jobclient首先分析 ...
-
[转][原]openstack-kilo--issue(六)kilo版openstack的dashboard在session超时后重新登录报错解决办法
http://blog.csdn.net/wylfengyujiancheng/article/details/50523373?locationNum=1&fps=1 1.现象描述: kil ...
-
Linux samba配置
更详细的配置地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 1 安装 yum -y install samba 2 ...
-
在http编程的门口----飞牛网自动下单,查单
刚进这个公司,以前没接触过http编程,所以这两天做了个小例子来熟悉http编程,有点晕..... 不过还是做出来了,虽然有点粗糙,总结一下这个小软件: 主要使用QNetworkAccessManag ...
-
linux下expect命令实现批量ssh免密
有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时 ...
-
《java技术》第二次作业
(一)学习总结 1.什么是构造方法?什么是构造方法的重载? 1)没有返回值,名字与类名相同,当新对象被创建的时候,构造函数会被调用,要想构造函数,必须声明对象并对其初始化.每一个类都有构造函数,如果没 ...
-
(4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
关键误操作:mysql误删除 1.备份+binlog恢复数据 [1.1]场景:不小心误删除某张表 [1.2]解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库. [1.3]案例 ...
-
centos7.2 增加3T的XFS模式分区
parted -l 查看分区情况与要分区的设备 # parted /dev/sda #选定要操作的硬盘 此时命令提示符会变成(parted) (par ...
-
Go语言的包管理
1 概述 Go 语言的源码复用建立在包(package)基础之上.包通过 package, import, GOPATH 操作完成. 2 main包 Go 语言的入口 main() 函数所在的包(pa ...