从零开始学习Linux:Day02 文件传输(scp / rsync / nfs /vsftp)

一、scp,用来在本地主机和远程主机间复制文件,不建议传输目录,非要传目录,可以加参数-r。加参数-C(大写C),可以传输过程中进行压缩,但不会产生压缩的文件,只是在传输过程中进行压缩。

#本地文件复制到远程:

scp /etc/fstab 192.168.68.129:/data/

从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第1张图片

二、rsync,实现本机与远程主机数据同步(本地推送到远程,远程拉到本地),同步本机数据时,相当于cp。

  • 它传送两个文件的不同部分,而不是每次都整份传送,因此速度很快。
  • 要使用rsync,本地主机和远程服务器都需要安装好rsync软件包。
  • 同步目录时,如果目录后有“/",目录本身不会同步。去掉”/“,目录本身和目录下的所有文件都会被同步。
  • 命令执行时,只会同步一次。
    #本地文件系统同步。本地/etc/目录下passwd文件拷贝到/tmp目录下
    rsync /etc/passwd /tmp

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第2张图片
    #本地文件系统与远程主机同步。本地/etc/目录下passwd文件拷贝到远程主机/tmp目录下

    rsync -r /etc/passwd 192.168.68.129:/tmp

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)
    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)
    #把远程主机/tmp下passwd同步到本地主机/tmp下

    rsync 192.168.68.129:/tmp/passwd /tmp

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第3张图片
    三、nfs(network file system),文件共享服务。可以让不同主机通过网络实现文件共享。nfs客户端可以将nfs服务器共享的目录挂载到本地文件系统中,访问目录就如同访问自己的本地目录一样。

  • 首先配置nfs服务器,这里使用192.168.68.129主机
    #安装nfs服务组件

    yum install nfs-utils -y

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第4张图片
    #配置nfs服务器,先创建一个用来共享的目录,并把共享目录配置到nfs配置文件/etc/exports里。

    mkdir -p /data/nfs
    vim /etc/exports

    配置文件增加:/data/nfs 192.168.68.128 (rw,sync) #这里的IP为客户端的IP地址。
    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第5张图片
    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)
    #启动服务,先启动rpcbind,再启动nfs

    systemctl  start rpcbind
    systemctl start nfs
  • 配置nfs客户端
    #使用showmount来搜索网络中可用的共享文件,确认可以找到nfs服务器共享的目录。
    showmount -e 192.168.68.129

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)
    #创建挂载目录,并挂载

    mkdir -p /mnt/nfs
    mount -t nfs 192.168.68.129:/data/nfs /mnt/nfs

    从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第6张图片

四、vsftp (very secure FTP),是一个开源的ftp服务器软件,ftp服务器用来存储文件,ftp客户端用来下传或下载文件,从而实现客户端与服务器文件传输,其安全性高。
*安装vsftp服务器,这里安装在192.168.68.129主机上

yum install vsftpd -y

从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第7张图片
#启动服务

systemctl start vsftpd

从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)

*安装vsftp客户端

yum install lftp

若允许匿名登录,默认FTP目录是:/var/ftp/pub ,且匿名用户没有上传下载权限,需修改配置文件、/etc/vsftpd/vsftpd.conf,设定定可上传下载:
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
Anon_otherr_write_enable=YES
Anon_umask=022
除ftp本身权限外,CentOS文件本身也存在自有权限,设定允许读写才可以。
从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)

上传文件:put mput
下载文件:get mget get不能下载目录,下载目录用mirror
从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第8张图片
从零开始学习Linux:Day02 文件传输(scp / rsync / nfs / vsftp)_第9张图片

可以通过”?“查看ftp帮助资料。

以上是匿名访问ftp。也可以设定本地系统用户访问ftp,禁用匿名登录。
需要配置文件修改为:
annonymous_enable=NO
chroot_local_user=YES
chroot_list_enable=NO
System start vsftpd

以上为linux系统中,文件传输最常用的几种方法。