Skip to content

文件传输

本机主机(个人)和远程主机之间传输文件推荐使用SCP(命令行)SFTP

远程服务器间文件传输强烈推荐使用rsync

1. SCP

SCP是一个非交互式的命令行工具,主要用于复制文件和目录在不同主机间,并且传输过程中同样采用SSH协议加密。

scp [选项] [本地文件或目录] [用户名@远程主机地址]:[远程目录]

scp /path/to/localfile user@example.com:/path/to/remotedir

这条命令将本地文件localfile复制到远程主机example.comremotedir目录下。

scp [选项] [用户名@远程主机地址]:[远程文件或目录] [本地目录]

scp user@example.com:/path/to/remotefile /path/to/localdir/

此命令将远程主机上的remotefile文件下载到本地的localdir目录下。

  • 一些常见选项
  • -r:递归复制整个目录及其子目录。
  • -P:指定远程主机的SSH端口(默认为22)。
  • -i:指定私钥文件用于身份验证。

2. SFTP

SFTP是一个交互式文件传输程序,它不仅提供了类似FTP的功能,还利用SSH协议保证了数据传输过程中的安全性。相比于传统的FTP,SFTP客户端和服务端之间的所有通信都会被加密,确保敏感信息不被窃听或篡改。

sftp username@remote_host_address

输入后会提示输入密码,或者如果配置了SSH密钥对,可能会自动使用密钥登录。

使用byeexit命令终止SFTP会话。

基本命令

  • ls:列出远程目录的内容。
  • cd:改变远程目录。
  • get:从远程主机下载文件到本地。

    get remote_file local_file
    

    如果省略本地文件名,则会以相同的文件名保存到当前本地目录。

  • put:将本地文件上传到远程主机。

    put local_file remote_file
    
  • mkdir:在远程主机上创建目录。

  • rm:删除远程主机上的文件或目录。

3.Rsync

rsync是一个非常强大的文件同步工具,它能够实现增量式、安全、快速的文件传输和同步。特别适合在服务器之间进行大量数据的同步操作,因为它能够检测并仅传输那些在源和目标之间有差异的文件,从而大大节省了带宽和时间。

基本语法

rsync [选项] [源文件或目录] [目标文件或目录]

举例

rsync -avzhP /path/to/source /path/to/destination

选项

  • -a:递归复制,并且保留源文件或目录的所有属性,包括权限、时间戳、符号链接等。

  • -v:详细输出,显示rsync执行的详细过程。

  • -z:压缩数据传输,可以节省带宽。

  • -h:以人类可读的格式显示大小。

  • -P:等同于--partial --progress,在传输过程中如果连接中断,可以继续上次的传输,同时显示传输进度。

  • --delete:在目标目录中删除不存在于源目录中的文件,保持目标目录与源目录一致。

  • --exclude:排除某些文件或目录。

  • --include:包含某些文件或目录,与--exclude相反。

  • --stats:显示传输的统计信息。

  • --bwlimit:限制传输带宽,单位为KB/s。

Rsync 参考链接