总结一下目前我接触过的在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 //查看挂载,如果有,则挂载成功。至此所有的安装成功。