2020-03-17

总结一下目前我接触过的在Linux之间传输文件和Linux与Windows之间传输文件的工具集合

首先linux与windows之间互传的工具

winSCP

开源免费的软件,这个我推荐用这个,基于ssh安全可靠不收费,图形化操作,方便

接着是

 Linux之间的互传工具

scp


scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。

scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 

举例: 

scp /it/work/1txt [email protected]:/home/w/  #把本地的source.txt文件拷贝到192.168.1.10机器上的/home/w目录下


scp [email protected]:/home/work/source.txt /home/work/  #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下


scp [email protected]:/home/work/source.txt  [email protected]:/home/work/  #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

scp -r /home/work/sourcedir [email protected]:/home/work/  #拷贝文件夹,加-r参数

scp -r /home/work/sourcedir [email protected]:/home/work/  #使用主机名

scp -r -v /home/work/sourcedir [email protected]:/home/work/  #显示详情,加-v参数



rsync

【优点】功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。 

【缺点】暂无

【用法】 

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。 

命令格式: 

rsync [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 

举例: 

rsync /home/work/source.txt [email protected]:/home/work/  #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下


rsync [email protected]:/home/work/source.txt /home/work/  #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下


rsync [email protected]:/home/work/source.txt [email protected]:/home/work/  #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下


rsync -r /home/work/sourcedir [email protected]:/home/work/  #拷贝文件夹,加-r参数

rsync -r /home/work/sourcedir [email protected]:/home/work/  #使用主机名

rsync -r -v /home/work/sourcedir [email protected]:/home/work/  #显示详情,加-v参数


rz 和 sz 命用在Linux与Windows之间,开源免费

1.软件安装

1)编译安装

root 账号登陆后,依次执行以下命令:

cd /tmp

wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20

./configure && make && make install

上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:

cd /usr/bin

ln -s /usr/local/bin/lrz rz

ln -s /usr/local/bin/lsz sz

2)yum安装

root 账号登陆后执行以下命令:

yum install -y lrzsz

2.用说明

sz命令发送文件到本地:

# sz filename

rz命令本地上传文件到服务器:

# rz

执行该命令后,在弹出框中选择要上传的文件即可。

说明:打开SecureCRT软件 -> Options -> session options -> X/Y/Zmodem 下可以设置上传和下载的目录。

NFS:即为网络文件系统。

主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录。

主要用途:NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件。

关于端口使用说明:

1.通过网络来进行数据传输,因此会使用一些端口来传输数据。

2.NFS在传输数据的时候使用的端口会随机选择。

问:nfs客户端如何知道nfs服务器端使用哪个端口?

答:通过RPC(远程过程调用)协议/服务来实现。

rpc工作原理:1.启动RPC服务

      2.nfs启动时随机取用若干端口,并主动向rpc服务注册取用相关信息

      3.客户端请求nfs服务向rpc

      4.rpc返回端口给客户端

5.拿着地址与端口向nfs服务器请求传输数据

所以综上所述:nfs服务必须在rpc服务启动之后启动,客户端无需启动nfs服务,但需要启动rpc服务。

nfs部署:

需要安装的软件包:

nfs-utils:nfs服务主程序

rpcbind:rpc主程序

yum install -y  nfs-utils rpcbind 

启动nfs相关服务:

1.启动rpcbind

systemctl status rpcbind

systemctl start rpcbind

systemctl enable rpcbind

rpcinfo -p localhost             //查看nfs服务向rpc服务注册的端口信息。此时nfs服务还没有启动因此没有太多注册的端口映射信息。

lsof -i : 111

netstat -lntup | grep rpcbind

2.启动nfs服务:

systemctl start nfs

systemctl enable nfs

systemctl status nfs

rpcinfo -p localhost        //查看注册信息


[root@localhost ~]# ps -ef | egrep "rpc|nfs"

root        378      2  0 02:39 ?        00:00:00 [rpciod]

rpc        4873      1  0 04:08 ?        00:00:00 /sbin/rpcbind -w                     

rpcuser    5055      1  0 04:18 ?        00:00:00 /usr/sbin/rpc.statd --no-notify         //检查文件一致性

root       5056      1  0 04:18 ?        00:00:00 /usr/sbin/rpc.idmapd                   

root       5057      1  0 04:18 ?        00:00:00 /usr/sbin/rpc.mountd                    //权限管理验证

root       5062      2  0 04:18 ?        00:00:00 [nfsd4_callbacks]

root       5068      2  0 04:18 ?        00:00:00 [nfsd]

root       5069      2  0 04:18 ?        00:00:00 [nfsd]

root       5070      2  0 04:18 ?        00:00:00 [nfsd]

root       5071      2  0 04:18 ?        00:00:00 [nfsd]

root       5072      2  0 04:18 ?        00:00:00 [nfsd]

root       5073      2  0 04:18 ?        00:00:00 [nfsd]

root       5074      2  0 04:18 ?        00:00:00 [nfsd]

root       5075      2  0 04:18 ?        00:00:00 [nfsd]

root       5189   3406  0 04:27 pts/0    00:00:00 grep -E --color=auto rpc|nfs

NFS服务器启动的时候至少需要两个不同的进程,一个是管理nfs客户端是否可以登陆rpc。nfsd主进程,一个是管理nfs客户端是否能够登入的rpc.mountd进程。

如果需要管理磁盘配额,则还需要加载rpc.rquotad进程

nfs服务端说明:

配置nfs启动文件:

默认存放地点:/etc/exports          //存在但是没有内容,默认为空

exports配置文件格式:

nfs共享目录  nfs客户端地址1(参1,参2.....) 客户端地址2(参1,参2...)

说明:

nfs共享目录:为nfs服务器要共享的实际目录,绝对目录。注意权限问题。

nfs客户端地址:为nfs服务器授权可以访问的客户端的地址,可以是单独的ip地址或主机名,域名。也可以是整个网段。

授权整个网段:eg:10.0.0.0/24

文件配置实例说明:

1. /data 10.10.10.0/24(rw,sync)   //允许客户端读写,并且数据同步写到服务器端磁盘  注意:24与(之间不能有空格

2./data 10.10.10.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)//允许读写,并且数据同步到客户端磁盘,并且指定客户端的用户uid和pid

3./data 10.10.10.0/24(ro) //只读共享

rw读写权限

sync请求或写入数据时,数据同步写入到nfs server 的硬盘后才返回。

ro只读权限

all_squash不管是什么身份访问共享目录,权限都将被压缩成匿名用户。

1)确保所有客户端服务器对nfs共享目录具备相同的用户访问权限。

      2)就是anonuid,anongid指定的uid和gid的用户。

nfs服务端配置:


 mkdir-p /data                              //创建数据目录

 touch/data/ffy.txt                         //创建测试文档

 chown -R nfsnobody.nfsnobody /data        //更改属组,nfsnobody.nfsnobody

 ls -ld /data

vim /etc/exports                         //编辑配置文件。/data 172.16.15.0/24(rw,sync)

exportfs -rv                            //加载配置文件

showmount -e localhost                  //nfs服务器本地查看挂载情况。

mount -t nfs 172.16.15.19:/data /mnt    //本地挂载配置 df -h




nfs客户端 配置:



yum install rpcbind nfs-utils -y   //安装rpcbind与nfs

systemctl start rpcbind            //启动rpcbind,不启动nfs 为了使用showmount等功能。但客户端不用nfs功能

 showmount -e 172.16.15.19//查看本地



mount -t nfs 172.16.15.19:/data /mnt  //执行挂载命令挂载到本机的/mnt目录下。 前面的ip地址是客户端的ip地址

df -h                                    //查看挂载,如果有,则挂载成功。至此所有的安装成功。

你可能感兴趣的:(2020-03-17)