Linux系统间进行文件传输

我需要在linux间传输一个20G的大文件,两台服务器是在同一个局域网上,可以ping通的前提下。我最后使用的方法是sftp的方法传输的,介绍一下我找到的方法。

1. 使用 scp 命令

scp 是 Secure Copy 的缩写,它允许你在本地和远程主机之间安全地复制文件。

示例:
  • 从本地复制文件到远程服务器:

    scp /path/to/local/file username@remotehost:/path/to/remote/directory/
    
  • 从远程服务器复制文件到本地:

    scp username@remotehost:/path/to/remote/file /path/to/local/directory/
    
  • 复制整个目录:

    使用 -r 选项可以递归复制整个目录。

    scp -r /path/to/local/directory username@remotehost:/path/to/remote/directory/
    

2. 使用 rsync 工具

rsync 是一个更高级的文件传输工具,支持增量传输、压缩、链接保持等功能,并且比 scp 更高效。

示例:
  • 同步本地文件夹到远程服务器:

    rsync -avz /path/to/local/directory/ username@remotehost:/path/to/remote/directory/
    
  • 同步远程文件夹到本地:

    rsync -avz username@remotehost:/path/to/remote/directory/ /path/to/local/directory/
    
  • 保持符号链接、权限等属性:

    rsync 默认会保留文件的权限、时间戳等信息,可以通过添加参数来进一步控制这些行为。

3. 使用 FTP/SFTP

FTP(File Transfer Protocol)是文件传输服务,SFTP(SSH File Transfer Protocol)是安全文件传输服务。这两个都是十分经典且常见的文件传输协议。

使用 sftp 命令行工具:
sftp username@remotehost
sftp> put /path/to/local/file /path/to/remote/directory/
sftp> get /path/to/remote/file /path/to/local/directory/

4. 使用 ssh 和重定向

可以通过 ssh 并结合输入输出重定向来实现文件传输服务。

示例:
  • 将本地文件内容发送到远程服务器上的文件:

    cat /path/to/local/file | ssh username@remotehost "cat > /path/to/remote/file"
    
  • 从远程服务器获取文件内容并保存到本地:

    ssh username@remotehost "cat /path/to/remote/file" > /path/to/local/file
    

总结

scprsync 是最常用且易于使用的工具,适合大多数场景;而FTP/SFTP 则更适合交互式操作。我只尝试了前三种方法,第四种方法未尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值