【Linux---10】本地机器 <=> 服务器 文件互传

发布于:2024-12-06 ⋅ 阅读:(22) ⋅ 点赞:(0)

1. 小文件互传

使用sz命令。

说明:sz命令是ZModem文件传输协议的一部分,用于在Linux和Unix系统中,从本地系统发送(send)文件到远程系统。sz命令通常与rz命令(ZModem接收文件)一起使用,二者通常会在像SecureCRT、XShell等终端软件中使用。

需要注意的是,sz和rz命令需要在你的服务器和SSH客户端都安装了lrzsz包才能使用。如果没有安装,你可以使用你的包管理器(如apt或yum)来安装。例如,在Ubuntu上,你可以使用以下命令来安装:

sudo apt-get install lrzsz

具体例子:

  1. 第一步:在登录到远程服务器后,先定位到你想要传输的文件所在的目录,例如,如果你想要传输的文件是/home/user/test.txt,那么切换到那个目录:

    cd /home/user/
    
  2. 第二步:可以使用sz命令来发送这个文件:

    sz test.txt
    
  3. 第三步:执行这个命令后,SecureCRT或Xshell会弹出一个窗口让你选择在本地电脑上保存文件的路径。选择一个路径后,文件就会开始传输。

  4. 第4步:传输完成后,你就可以在本地电脑的指定路径下找到那个文件。

2. 大文件互传

sz命令无法传输文件时,才使用此方法。往往表现为使用sz命令传输文件中途卡死,可能是含有特殊符号,也可能是文件太大。此时有两种方式可以选择。

  1. 方式一:借助 python 调起server服务,进行传输。
    1. 语法:
      # 1. 服务器端:cd 到相应的目录下,然后启动服务
      python -m SimpleHTTPServer 端口号
      # 2. 本地机器
      wget 服务器主机名:服务器端口号/启动的python服务的目录为根目录
      
    2. 案例:上传 /home/user/test.txt文件
      # 1. cd 到相应的目录下
      cd /home/user/
      # 2. 服务器端:在/home/user/下启动python服务
      python -m SimpleHTTPServer 8012
      # 3. 本地机器
      wget m1-sys-abcdef.baidu.com:8012/test.txt
      
  2. 方式二:借助 nc 命令
    1. 语法:
      # 1. 服务器端:cd 到相应的目录下,然后启动服务
      nc -l 端口号 > 文件路径
      # 2. 本地机器
      nc -w 1 服务器主机名 服务器端口号 < 下载到本地哪里
      
    2. 案例:上传 /home/user/test.txt文件
      # 1. 服务器端:在/home/user/下启动python服务
      nc -l 8100 > /home/user/test.txt
      # 3. 本地机器
      nc -w 1 m1-sys-abcdef.baidu.com 8100 < test.txt
      
      1. 服务器:
        1. nc:这是netcat的简写,它是一个通用的工具,可以用来读取和写入网络连接。它被广泛用于网络调试和探索。
        2. -l:这是netcat的一个参数,表示监听模式。在这种模式下,netcat将等待并接受入站连接,而不是主动发起连接。
        3. 8100:这是netcat监听的端口号。可以随意设置。
        4. >:这是shell的重定向操作符。它将左侧命令的输出(在这个情况下,是netcat接收到的数据)重定向到右侧的文件。
      2. 本地机器:
        1. nc:这是netcat的简写,是一个用于处理TCP/IP协议的网络工具,可以用来进行数据读取和写入。
        2. -w 1:这是netcat的一个参数,-w后面的数字表示超时时间(秒)。在这个命令中,-w 1 表示如果1秒内没有任何网络活动,那么netcat就会断开连接。
        3. m1-sys-abcdef.baidu.com:远程服务器的主机名或者IP地址。
        4. 8100:这是远程服务器的端口号。
        5. <:这是shell的重定向操作符。它将右侧的文件(在这个情况下,是updt-spark-1.0-SNAPSHOT.jar文件)的内容作为左侧命令的输入(在这个情况下,是netcat命令)。

网站公告

今日签到

点亮在社区的每一天
去签到