最近在CentOS系统中(主机A)读数据。由于A主机只是作为数据读取,具体的Deep Learning 实验,需要在主机B( CentOS )中进行,需要将主机A上的数据传输。由于主机A并不是一直开着CentOS系统,且数据量比较(40G+),所以用优盘copy的方法有点不现实,经过查找资料,发现了两种方法。
注意:两台主机都是CentOS 6.5 版本的系统,主机A:IP 192.168.1.102 主机B:192.168.1.33
1、用命令行的方式
A,B 机上的SSH都允许root登录,B主机的IP:192.168.1.33,要把A主机上的/home/data文件夹传送到主机B上,运行命令
注意:这里的scp命令,前面不能加sudo ,加上sudo后会报错。
[root@localhost Desktop]# scp /home/data root@192.168.1.33:/home/new-data
上面的命令中/home/data 是A主机中要传的文件夹,后面的信息是B主机的信息。
输入上面的命令会提示输入B主机的root 密码,对于要传的文件夹来说scp命令是不允许的会提示
/home/data: not a regular file
so,需要先将文件夹进行压缩,然后再用刚才的命令进行传递数据
[root@localhost Desktop]#tar jcvf /home/data.tar.bz2 /home/data #创建.tar.bz2文件,压缩率高(由于数据量比较大,压缩时间比较长)
[root@localhost Desktop]#tar -xvjf data.tar.bz2 #解压.tar.bz2文件
2、用NFS方式
首先稍微介绍一下NFS。
NFS( Network File System )即,网络文件系统,允许网络中的计算机之间通过TCP/IP 网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
下面看一下NFS服务器和客户端的具体配置过程
服务器的配置
(1)安装nfs 所需的包,nfs-utils 和 rpcbind,注意:在centos的一些版本中安装nfs-utils的时候会安装rpcbind
yum install -y nfs-utils
(2)修改配置文件(创建共享的文件路径)
<pre name="code" class="html">[root@localhost Desktop]#vim /etc/exports/home/ 192.168.1.0/24 (rw,all_squash) #文件里面添加的内容
其中的/home/ 是要共享的目录 192.168.1.0/24 是允许访问的主机,可以是一个IP,也可以是一个网段 。()里是共享的权限 ,其中 rw是读写,all_squash是普通用户身份
(3)修改后,启动NFS服务
[root@localhost Desktop]# /etc/init.d/rpcbind start #输入该命令后无反应
[root@localhost Desktop]# /etc/init.d/nfs start
客户端的配置(主机B)
(1)安装nfs所需的软件包(和服务器的安装方式一样)
(2)查看服务器共享了哪些目录
showmount -e 192.168.1.102
会提示如下错误
在网上查找,发现是防火墻的问题 介绍网址 NFS错误:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
被访问的NFS服务器上的防火墙没有添加规则,我所做的处理是直接将防火墙关闭,需在服务器配置
service iptables stop
服务器配置完后,再查看共享目录就没问题了。
(3)客户端mount nfs
mount -t nfs 192.168.1.102:/home /mnt/new_data